GridView 列表绑定,分页,排序,全选,反选,查看,编辑,删除,批量删除
2016-03-04 10:43
459 查看
前台代码:
后台:
<asp:GridView runat="server" ID="GridView1" AutoGenerateColumns="false" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="true" PageSize="3" PagerSettings-Mode="NextPreviousFirstLast" PagerSettings-FirstPageText="首页" PagerSettings-LastPageText="尾页" PagerSettings-NextPageText="下一页" PagerSettings-PreviousPageText="上一页" OnRowCommand="GridView1_RowCommand" OnPageIndexChanging="GridView1_PageIndexChanging" AllowSorting="true" OnSorting="GridView1_Sorting"> <FooterStyle BackColor="#990000" Font-Bold="true" ForeColor="White" /> <Columns> <asp:TemplateField> <HeaderStyle HorizontalAlign="Center" /> <HeaderTemplate> <asp:CheckBox runat="server" ID="cbHead" OnCheckedChanged="cbHead_CheckedChanged" AutoPostBack="true" Text="全选" /> </HeaderTemplate> <ItemTemplate> <asp:CheckBox runat="server" ID="CheckItem" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField Visible="false"> <ItemTemplate> <asp:Label ID="lblRowGuid" runat="server" Text='<%#Eval("UserGuid") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="LoginID" HeaderText="账号" ReadOnly="true" SortExpression="LoginID" /> <asp:BoundField DataField="password" HeaderText="密码" ReadOnly="true" SortExpression="password" /> <asp:BoundField DataField="OUGuid" HeaderText="部门" ReadOnly="true" SortExpression="OUGuid" /> <asp:BoundField DataField="IsEnabled" HeaderText="是否启用" ReadOnly="true" SortExpression="IsEnabled" /> <asp:BoundField DataField="Title" HeaderText="职位" ReadOnly="true" SortExpression="Title" /> <asp:TemplateField HeaderText="操作"> <ItemTemplate> <asp:LinkButton ID="linkSee" runat="server" CommandArgument='<%#Eval("UserGuid") %>' CommandName="Select" Text="查看"></asp:LinkButton> <asp:LinkButton ID="linEdit" runat="server" CommandArgument='<%#Eval("UserGuid") %>' CommandName="EditUpdate" Text="修改"></asp:LinkButton> <asp:LinkButton ID="linkDel" runat="server" CommandArgument='<%#Eval("UserGuid") %>' CommandName="UserGuid" Text="删除" OnClientClick="return confirm('确定删除吗?')"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns> <FooterStyle ForeColor="#000066" /> <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" /> <HeaderStyle BackColor="#006699" Font-Bold="true" ForeColor="White" /> </asp:GridView>
后台:
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Windows.Forms; namespace 工程运维管理平台 { public partial class Index : System.Web.UI.Page { string conn = ConfigurationManager.AppSettings["conn"].ToString(); SqlConnection con; SqlCommand com; DataSet ds; protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Bind(); } } #region 绑定列表 public void Bind() { if (ViewState["SortDirection"] == null) { RG.Data.DataLogicalEngine.BindGridView("Frame_User", GridView1, null, null); } else { RG.Data.DataLogicalEngine.BindGridView("Frame_User", GridView1, ViewState["SortExpression"].ToString(), ViewState["SortDirection"].ToString()); } //正在封装...暂用 //string strsql = "select * from Frame_User"; //con = new SqlConnection(conn); //con.Open(); //com = new SqlCommand(strsql, con); //SqlDataAdapter da = new SqlDataAdapter(com); //ds = new DataSet(); //da.Fill(ds, "Frame_User"); //if ( ViewState["SortDirection"] == null) //{ // GridView1.DataSource = ds.Tables["Frame_User"].DefaultView; //} //else //{ // DataView SortedDV = new DataView(ds.Tables["Frame_User"]); // SortedDV.Sort = ViewState["SortExpression"].ToString() + " " + ViewState["SortDirection"].ToString(); // GridView1.DataSource = SortedDV; //} //GridView1.DataBind(); //con.Close(); //con.Dispose(); //com.Dispose(); } #endregion #region GridView操作(查看、修改、删除) protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Select" && e.CommandArgument.ToString() != "") { //查看操作 string rowguid = e.CommandArgument.ToString();//获取主键 Response.Write("<script>window.open('Pages/Users/UserDetails.aspx?UserGuid=" + rowguid + "')</script>"); } if (e.CommandName == "EditUpdate" && e.CommandArgument.ToString() != "") { //修改操作 string rowguid = e.CommandArgument.ToString();//获取主键 Response.Write("<script>window.open('Pages/Users/EditUser.aspx?UserGuid=" + rowguid + "')</script>"); Bind(); } //注,生成前端界面的时候,若是删除列则:CommandArgument的值为主键列名,下面代码中的UserGuid须一致 if (e.CommandName == "UserGuid" && e.CommandArgument.ToString() != "") { //删除操作 string UserGuid = e.CommandArgument.ToString();//获取主键 RG.Data.DataLogicalEngine.Delete("Frame_User", e.CommandName.ToString(), UserGuid); Bind(); } } #endregion #region 分页事件 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; Bind(); } #endregion #region 全选,反选 protected void cbHead_CheckedChanged(object sender, EventArgs e) { string showText= ((System.Web.UI.WebControls.CheckBox)(GridView1.HeaderRow.Cells[0].FindControl("cbHead"))).Text; //bool isChecked = ((System.Web.UI.WebControls.CheckBox)(GridView1.HeaderRow.Cells[0].FindControl("CheckItem"))).Checked; if (showText == "全选") { foreach (GridViewRow gvRow in GridView1.Rows) { ((System.Web.UI.WebControls.CheckBox)(gvRow.Cells[0].FindControl("CheckItem"))).Checked = true; } ((System.Web.UI.WebControls.CheckBox)(GridView1.HeaderRow.Cells[0].FindControl("cbHead"))).Text = "反选"; } else { foreach (GridViewRow gvRow in GridView1.Rows) { if (((System.Web.UI.WebControls.CheckBox)(gvRow.Cells[0].FindControl("CheckItem"))).Checked) { ((System.Web.UI.WebControls.CheckBox)(gvRow.Cells[0].FindControl("CheckItem"))).Checked = false; } else { ((System.Web.UI.WebControls.CheckBox)(gvRow.Cells[0].FindControl("CheckItem"))).Checked = true; } } ((System.Web.UI.WebControls.CheckBox)(GridView1.HeaderRow.Cells[0].FindControl("cbHead"))).Text = "全选"; } } #endregion #region 新增 protected void add_Click(object sender, EventArgs e) { Response.Write("<script language='javascript'>window.open('Pages/Users/AddUser.aspx','_blank')</script>"); } #endregion #region 导入 protected void btnExport_Click(object sender, EventArgs e) { } #endregion #region 导出 protected void btnImport_Click(object sender, EventArgs e) { } #endregion #region 批量删除 protected void btnDelAll_Click(object sender, EventArgs e) { string UserGuid = ""; //获取所有选中的数据 foreach (GridViewRow gvRow in GridView1.Rows) { if (((System.Web.UI.WebControls.CheckBox)(gvRow.Cells[0].FindControl("CheckItem"))).Checked) { UserGuid += Convert.ToString(((System.Web.UI.WebControls.Label)(gvRow.Cells[1].FindControl("lblRowGuid"))).Text) + ","; } } if (UserGuid != "") { UserGuid = UserGuid.Substring(0, UserGuid.Length - 1); MessageBox.Show("确定删除", "批量删除", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); //批量删除 if (RG.Data.DataLogicalEngine.Delete("Frame_User", "UserGuid", UserGuid)) { MessageBox.Show("删除成功!"); Bind(); } else { MessageBox.Show("删除失败!"); } } else { MessageBox.Show("请选择要删除的数据!"); } } #endregion #region 排序 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { if (ViewState["SortDirection"] == null) { ViewState["SortDirection"] = "DESC"; } if (ViewState["SortDirection"].ToString() == "ASC") { ViewState["SortDirection"] = "DESC"; } else { ViewState["SortDirection"] = "ASC"; } ViewState["SortExpression"] = e.SortExpression; Bind(); } #endregion } }
相关文章推荐
- more、less 和 most 的区别
- 十万条Access数据表分页的两个解决方法
- sqlserver关于分页存储过程的优化【让数据库按我们的意思执行查询计划】
- 高效的mysql分页方法及原理
- asp又一个分页的代码例子
- SqlServer 2000、2005分页存储过程整理第1/3页
- ADO存取数据库时如何分页显示
- 透彻掌握ASP分页技术很详细的分析
- Android编程UI设计之GridView和ImageView的用法
- 一条SQL语句搞定Sql2000 分页
- 分页 SQLServer存储过程
- 实现SQL分页的存储过程代码
- sql分页查询几种写法
- SQL行号排序和分页(SQL查询中插入行号 自定义分页的另类实现)
- mysql 分页优化解析
- 用ODBC的分页显示
- jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
- C#中GridView动态添加列的实现方法
- 一步步打造漂亮的新闻列表(无刷新分页、内容预览)第一步
- Gridview用法大总结(全程图解珍藏版)