DataGrid同时具有分页和排序功能及注意点
点击次数:21 次 发布日期:2008-11-26 14:10:09 作者:源代码网
|
源代码网推荐 下面给实现以上功能的原码,也就不多缀了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>"); 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
