网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ASP.NET中实现大结果集分页研讨.
.如何在.NET中访问MySQL数据库.
.编程实现QQ表情文件CFC格式.
.两个简单方法加速DataGridView.
.ASP.NET热点问题解答14个.
.微软发布了ASP.NET MVC源代码.
.实现asp.net只对个别控件实时访问.
.asp.net关于文件在数据库的存入和.
.ASP.NET2.0下为GridView添加鼠标.
.ASP.NET 中执行 URL 重写.
.asp.net 2的文件上传.
.XML 自定义串行化.
.用MasterPage 代替 PageBase.
..net开发投票机的思路.
.ASP.NET Forums 页面模型分析.
.如何用在ASP.NET中写入事件日志.
.客户端回调实现gridView无刷新分.
.轻松加密ASP.NET 2.0 Web程序配置.
.ASP.NET通过DSO访问分析服务器的.
.简单而又复杂的ASP.NET编程模型 .

DataGrid同时具有分页和排序功能及注意点

发表日期:2005-2-1


    当DataGrid同时具有分页和排序功能时应注意在重新绑定数据源时,MyDataGrid.CurrentPageIndex=0;
下面给实现以上功能的原码,也就不多缀了aspx中包含有DataGrid和控制其数据源变化的dropdownlist
DataGrid代码
  <asp:datagrid id="MyDataGrid" runat="server" BorderColor="#CCCCCC" Font-Size="100%" HorizontalAlign="Center"
            AutoGenerateColumns="False" OnDeleteCommand="MyDataGrid_Delete" OnSortCommand="Sort_Grid" OnPageIndexChanged="MyDataGrid_PageIndexChanged"
            DataKeyField="ACC_NO" PagerStyle-Position="Bottom" PagerStyle-HorizontalAlign="Center" PagerStyle-Mode="NextPrev"
            PageSize="10" AllowSorting="True" AllowPaging="True" CellPadding="4" Width="100%">
            <AlternatingItemStyle BackColor="#E9E9E6"></AlternatingItemStyle>
            <HeaderStyle Font-Bold="True" Wrap="False" ForeColor="White" BackColor="#999999"></HeaderStyle>
            <Columns>
             <asp:ButtonColumn Text="口" CommandName="Delete"></asp:ButtonColumn>
             <asp:BoundColumn DataField="NO" SortExpression="NO" ReadOnly="True" HeaderText="序号"></asp:BoundColumn>
             <asp:BoundColumn DataField="ID" SortExpression="ID" HeaderText="ID"></asp:BoundColumn>
             <asp:BoundColumn DataField="NAME" SortExpression="NAME" HeaderText="名称"></asp:BoundColumn>
             <asp:BoundColumn DataField="C_NAME" SortExpression="C_NAME" HeaderText="各科名称"></asp:BoundColumn>
             <asp:BoundColumn DataField="FLG" SortExpression="FLG" HeaderText="项目"></asp:BoundColumn>
            </Columns>
            <PagerStyle NextPageText="下10件" PrevPageText="返回" HorizontalAlign="Center"></PagerStyle>
           </asp:datagrid>


dropdownlist代码
<asp:dropdownlist id="ddlWk" Runat="server" AutoPostBack="True" Enabled="False">
               <asp:ListItem Value="0">东京</asp:ListItem>
               <asp:ListItem Value="3">九州</asp:ListItem>
               <asp:ListItem Value="8">北海道</asp:ListItem>
               <asp:ListItem Value="9">四国</asp:ListItem>
              </asp:dropdownlist>

 

aspx.cs文件代码核心如下:
private void Page_Load(object sender, System.EventArgs e)
  {
   if(!IsPostBack)
   {
       Session["WP"] ="0";
       ddlWk_getS();
       BindGrid();
   } 
  }
  private void ddlWk_getS()
  {
   switch (Session["WP"].ToString())
   {
    case "0":ddlWk.SelectedIndex=0;
     break;
    case "3":ddlWk.SelectedIndex=1;
     break;
    case "8":ddlWk.SelectedIndex=2;
     break;
    case "9":ddlWk.SelectedIndex=3;
     break;
    default:ddlWk.SelectedIndex=0;
     break;
   }
  }
  protected void BindGrid()
  {
   MyDataGrid.DataSource=GetData().Tables["vCO"].DefaultView;
   MyDataGrid.DataBind();
   //COUNT.Text=MyDataGrid.Columns.Count.ToString();
  }

  /// <summary>
  /// 返回Data
  /// </summary>
  ///<returns></returns>
  private DataSet GetData()
  {
   string strConn=(String) ((NameValueCollection) Context.GetConfig("system.web/database"))["strConn"];
   using (SqlConnection conn = new SqlConnection(strConn))
   {
    SqlCommand cmd = new SqlCommand("sp_C",conn);
    cmd.CommandType=CommandType.StoredProcedure;
    cmd.Parameters.Add("@place",SqlDbType.VarChar,2);
    cmd.Parameters["@place"].Value=Session["WP"].ToString();
    conn.Open();

    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand=cmd;
    DataSet ds=new DataSet();
    da.Fill(ds,"vCO");
    Count.Text="ヒット:"+ds.Tables["vCO"].Rows.Count.ToString()+"件";
    return ds;
   }

  }
  /// <summary>
  ///从DataSet中除一
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="E"></param>
  protected void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs E)
  {
    String strID=MyDataGrid.DataKeys[(int)E.Item.ItemIndex].ToString();
    //删除操作
  }
  /// <summary>
  /// 分页操作
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  protected void MyDataGrid_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
  {
   MyDataGrid.CurrentPageIndex=e.NewPageIndex;
   BindGrid();
  }
  /// <summary>
  /// 排序
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  protected void Sort_Grid(object sender, DataGridSortCommandEventArgs e)
  {
   DataView dv= new DataView(GetData().Tables["vCO"]);
   dv.Sort= e.SortExpression.ToString();
   MyDataGrid.DataSource=dv;
   MyDataGrid.DataBind();
  }

  #region Web   override protected void OnInit(EventArgs e)
  {
   //   //
   InitializeComponent();
   base.OnInit(e);
  }
 
  /// <summary>  /// </summary>
  private void InitializeComponent()
  {   
   this.ddlWk.SelectedIndexChanged += new System.EventHandler(this.ddlWk_SelectedIndexChanged);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void ddlWk_SelectedIndexChanged(object sender, System.EventArgs e)
  {
   Session["WP"]=ddlWk.SelectedValue;
   MyDataGrid.CurrentPageIndex=0;//没有这一句,当该页码超出其他数据源的范围时会出错
   BindGrid();
   Response.Write( "<script language='javascript'>parent.menuframe.location.reload();</script>");
 
  }

上一篇:ASP.NET中利用存储过程实现模糊查询 人气:14398
下一篇:建立自己的RSS 人气:10375
浏览全部DataGrid的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐