当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  EnableViewState=false的DataGrid分页

 EnableViewState=false的DataGrid分页

点击次数:23 次 发布日期:2008-11-26 11:13:49 作者:源代码网
源代码网推荐      用DataGrid默认的分页方式有两个小问题
源代码网推荐  
源代码网推荐  1.要有viewstate,由你表的数据量决定,一般情况下较大
源代码网推荐  2.用的是PostBack方式,刷新的时候提示是否要重发消息
源代码网推荐  
源代码网推荐  所以改为取消viewstate在OnItemCreated生成HyperLink 方式,避免了以上两个问题
源代码网推荐  
源代码网推荐  <%@ Import Namespace="System.Data" %>
源代码网推荐  <%@ Import Namespace="System.Data.SqlClient" %>
源代码网推荐  <script language="C#" runat="server">
源代码网推荐   public void ItemCreated(Object sender, DataGridItemEventArgs e) {
源代码网推荐   ListItemType elemType = e.Item.ItemType;
源代码网推荐   if (elemType == ListItemType.Pager)
源代码网推荐   {
源代码网推荐   TableCell pager = (TableCell) e.Item.Controls[0];
源代码网推荐   for (int i=0; i<pager.Controls.Count; i+=2)
源代码网推荐   {
源代码网推荐   Control o = pager.Controls[i];
源代码网推荐   if (o is LinkButton)
源代码网推荐   {
源代码网推荐   LinkButton lb = (LinkButton) o;
源代码网推荐   HyperLink hl=new HyperLink();
源代码网推荐   hl.NavigateUrl=Request.Path + "?page="+lb.CommandArgument;
源代码网推荐   hl.Text="[ "+lb.Text+" ]";
源代码网推荐   pager.Controls.RemoveAt(i);
源代码网推荐   pager.Controls.AddAt(i,hl);
源代码网推荐   }
源代码网推荐   else
源代码网推荐   {
源代码网推荐   Label l = (Label) o;
源代码网推荐   l.Text = "Page " + l.Text;
源代码网推荐   }
源代码网推荐   }
源代码网推荐   }
源代码网推荐   }
源代码网推荐   protected void Page_Load(Object sender, EventArgs e)
源代码网推荐   {
源代码网推荐   if(!Page.IsPostBack){
源代码网推荐   int pageIndex=0;
源代码网推荐   try{pageIndex=Int32.Parse(Request["page"])-1;}catch(Exception ex){}
源代码网推荐   Response.Write(MyDataGrid.PageCount);
源代码网推荐   MyDataGrid.CurrentPageIndex=pageIndex;
源代码网推荐   BindData();
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   void BindData(){
源代码网推荐  //绑定数据库,略
源代码网推荐   }
源代码网推荐  </script>
源代码网推荐  <HTML>
源代码网推荐   <body>
源代码网推荐   <form id="Form1" method="post" runat="server">
源代码网推荐   <asp:datagrid id="MyDataGrid" runat="server" EnableViewState="false" AllowPaging="True" PageSize="10"
源代码网推荐   OnItemCreated="ItemCreated"
源代码网推荐   PagerStyle-BackColor="#FFFFFF"
源代码网推荐   PagerStyle-HorizontalAlign="Right"
源代码网推荐   PagerStyle-Mode="NumericPages">
源代码网推荐   </asp:datagrid>
源代码网推荐   </form>
源代码网推荐   </body>
源代码网推荐  </HTML>  做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华