EnableViewState="false"的DataGrid分页

时间:2010-03-15 12:18:57  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:消viewstate在OnItemCreated生成HyperLink 方式,避免了以上两个问题      <%@ Import Namespace="System.Data" %>   <%@ Import Namespace="System.Data.SqlClient" %>   <script language="C#" runat="server">    public void ItemCreat...
  正文:用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/ target=_blank class=infotextkey>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>
"EnableViewState="false"的DataGrid分页"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/13228.html


关键字:

关于《EnableViewState="false"的DataGrid分页》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td