查看: 6932|回复: 0
打印 上一主题 下一主题

使用DataGrid实现自定分页的例子

[复制链接]
跳转到指定楼层
1#
发表于 2007-9-19 23:45:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
MSSQL中建立一张表t_dict,包括四个字段FDictid(int),FNameCn(varchar),FNameEn(varchar),FNote(text)




<body>
       <form id="DictList" method="post" runat="server">
           <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing="0" width="100%" border="1">
               <TR>
                   <td bgColor="#c0c000">信息:<FONT face="Arial" color="#ffffff">数据维护</FONT>
                   </td>
               </TR>
               <tr>
                   <td><FONT face="宋体"></FONT></td>
               </tr>
               <tr>
                   <td><asp:datagrid id="MyDataGrid" runat="server" DataKeyField="FDictid" AutoGenerateColumns="False"
                           AllowPaging="True" Width="100%">
                           <SelectedItemStyle BackColor="#FFC080"></SelectedItemStyle>
                           <HeaderStyle BackColor="#C0C000"></HeaderStyle>
                           <Columns>
                               <asp:ButtonColumn Text="选择" HeaderText="选择" CommandName="Select">
                                   <HeaderStyle Font-Bold="True" HorizontalAlign="Center" Width="8%"></HeaderStyle>
                                   <ItemStyle Font-Bold="True" HorizontalAlign="Center"></ItemStyle>
                               </asp:ButtonColumn>
                               <asp:BoundColumn DataField="FDictID" HeaderText="标识号">
                                   <HeaderStyle Width="15%"></HeaderStyle>
                               </asp:BoundColumn>
                               <asp:BoundColumn DataField="FNameCn" HeaderText="名称">
                                   <HeaderStyle Width="15%"></HeaderStyle>
                               </asp:BoundColumn>
                               <asp:BoundColumn DataField="FNameEn" HeaderText="英文名称">
                                   <HeaderStyle Width="15%"></HeaderStyle>
                               </asp:BoundColumn>
                               <asp:BoundColumn DataField="FNote" HeaderText="描叙">
                                   <HeaderStyle Width="47%"></HeaderStyle>
                               </asp:BoundColumn>
                           </Columns>
                           <PagerStyle Visible="False"></PagerStyle>
                       </asp:datagrid></td>
               </tr>
           </TABLE>
           <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing="0" width="100%" bgColor="#ff9966"
               border="1">
               <TR>
                   <td align="right"><asp:linkbutton id="btnFirst" runat="server" CommandArgument="fist">首页</asp:linkbutton>
                       <asp:linkbutton id="btnPrev" runat="server" CommandArgument="prev">上一页</asp:linkbutton>
                       <asp:linkbutton id="btnNext" runat="server" CommandArgument="next">下一页</asp:linkbutton>
                       <asp:linkbutton id="btnLast" runat="server" CommandArgument="last">末页</asp:linkbutton>
                       <asp:label id="lblCurrentIndex" runat="server"></asp:label>/<asp:label id="lblPageCount" runat="server"></asp:label>   
                       跳转到<asp:textbox id="txtGoPage" runat="server" Width="30px" CssClass="textbox"></asp:textbox>
                       <asp:button id="btnGo" runat="server" Width="29px" CssClass="button" Text="GO"></asp:button></td>
               </TR>
           </TABLE>
       </form>
   </body>





using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace CrystalReport
{
   /// <summary>
   /// DataGridcustom 的摘要说明。
   /// </summary>
   public class DataGridcustom : System.Web.UI.Page
   {
       protected System.Web.UI.WebControls.DataGrid MyDataGrid;
       protected System.Web.UI.WebControls.LinkButton btnFirst;
       protected System.Web.UI.WebControls.LinkButton btnPrev;
       protected System.Web.UI.WebControls.LinkButton btnNext;
       protected System.Web.UI.WebControls.LinkButton btnLast;
       protected System.Web.UI.WebControls.Label lblCurrentIndex;
       protected System.Web.UI.WebControls.Label lblPageCount;
       protected System.Web.UI.WebControls.TextBox txtGoPage;
       protected System.Web.UI.WebControls.Button btnGo;
   
       private void Page_Load(object sender, System.EventArgs e)
       {
           // 在此处放置用户代码以初始化页面
           if (!IsPostBack)
               BindGrid();
       }

       public void BindGrid()
       {
           SqlConnection myConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnString"]);
           string strSql ="SELECT * FROM t_dict order by FDictID desc";
           SqlDataAdapter myCommand = new SqlDataAdapter(strSql, myConnection);
           DataSet ds = new DataSet();
           myCommand.Fill(ds, "t_dict");
           MyDataGrid.DataSource=ds.Tables["t_dict"].DefaultView;
           MyDataGrid.DataBind();
           ShowStatsPage();
       }

       private void PagerButtonClick(object sender, System.EventArgs e)
       {
           //获得LinkButton的参数值
           String arg = ((LinkButton)sender).CommandArgument;
      
           switch(arg)
           {
               case ("next"):
                   if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
                       MyDataGrid.CurrentPageIndex ++;
                   break;
               case ("prev"):
                   if (MyDataGrid.CurrentPageIndex > 0)
                       MyDataGrid.CurrentPageIndex --;
                   break;
               case ("fist"):
                   MyDataGrid.CurrentPageIndex=0;
                   break;
               case ("last"):
                   MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
                   break;
               default:
                   //本页值
                   MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
                   break;
           }
           BindGrid();
       }         

       void ShowStatsPage()
       {
           //显示页面信息
           lblCurrentIndex.Text = "[<font color=\"blue\">当前为第:" + ((int)MyDataGrid.CurrentPageIndex+1) + "页</font>]";
           lblPageCount.Text = "[<font color=\"blue\">共:" + MyDataGrid.PageCount + "页</font>]";
       }

       #region Web 窗体设计器生成的代码
       override protected void OnInit(EventArgs e)
       {
           //
           // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
           //
           InitializeComponent();
           base.OnInit(e);
       }
      
       /// <summary>
       /// 设计器支持所需的方法 - 不要使用代码编辑器修改
       /// 此方法的内容。
       /// </summary>
       private void InitializeComponent()
       {   
           this.MyDataGrid.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.MyDataGrid_PageIndexChanged);
           this.btnFirst.Click += new System.EventHandler(this.PagerButtonClick);
           this.btnPrev.Click += new System.EventHandler(this.PagerButtonClick);
           this.btnNext.Click += new System.EventHandler(this.PagerButtonClick);
           this.btnLast.Click += new System.EventHandler(this.PagerButtonClick);
           this.btnGo.Click += new System.EventHandler(this.btnGo_Click);
           this.Load += new System.EventHandler(this.Page_Load);

       }
       #endregion

       private void MyDataGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
       {
           //处理按下数字的方法
           MyDataGrid.CurrentPageIndex = e.NewPageIndex;
           BindGrid();

       }

       private void btnGo_Click(object sender, System.EventArgs e)
       {
           //页面直接跳转的代码
           if(txtGoPage.Text.Trim()!="")
           {
               int PageI=Int32.Parse(txtGoPage.Text.Trim())-1;
               if (PageI >=0 && PageI < (MyDataGrid.PageCount))
                   MyDataGrid.CurrentPageIndex = PageI ;
           }
           BindGrid();

       }

       private void btnFirst_Click(object sender, System.EventArgs e)
       {
      
       }

       private void btnPrev_Click(object sender, System.EventArgs e)
       {
      
       }

       private void btnNext_Click(object sender, System.EventArgs e)
       {
      
       }

       private void btnLast_Click(object sender, System.EventArgs e)
       {
      
       }
   }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表