GridView基本操作事件
来源:互联网 发布:宅急送bos系统数据库 编辑:程序博客网 时间:2024/05/29 19:02
转自http://www.cnblogs.com/baiboy/archive/2012/11/22/myGridView.html
对于gridview学NET的同学再熟悉不过,但是其中功能事件是否能编码熟练实现?前不久看点博文,以及资料,综合自己的一些想法,汇总如下:
数据库设计如下,以便更好理解:
设计:
实现:
GridView无代码分页排序
小实例:
AllowSorting设为True,aspx代码中是AllowSorting="True";
运行结果:
GridView选中,编辑,取消,删除
小实例:
GridView.aspx
1 <asp:GridView ID="GridView1" runat="server" Height="138px" Width="1117px" 2 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" 3 onpageindexchanging="GridView1_PageIndexChanging" 4 onrowcancelingedit="GridView1_RowCancelingEdit" 5 onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 6 onrowupdating="GridView1_RowUpdating"> 7 <Columns> 8 9 <asp:TemplateField HeaderText="身份证号" SortExpression="pid">10 <ItemTemplate>11 <asp:Label ID="Label1" runat="server" Text='<%# Bind("pid") %>'></asp:Label>12 </ItemTemplate>13 </asp:TemplateField>14 <%-- <asp:BoundField DataField="pid" HeaderText="身份证号" SortExpression="pid" />--%>15 <asp:BoundField DataField="pname" HeaderText="姓名" SortExpression="pname" />16 <asp:BoundField DataField="psex" HeaderText="性别" SortExpression="psex" />17 <asp:BoundField DataField="padress" HeaderText="地址" SortExpression="padress" />18 <asp:BoundField DataField="pyoubiao" HeaderText="邮编" SortExpression="pyoubiao" />19 <asp:BoundField DataField="pprice" HeaderText="工资起价" SortExpression="pprice" />20 <asp:CommandField HeaderText="选择" ShowSelectButton="True" />21 <asp:CommandField HeaderText="编辑" ShowEditButton="True" />22 <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />23 </Columns>24 <EmptyDataRowStyle BackColor="Red" />25 <HeaderStyle BackColor="#0000CC" Font-Bold="True" ForeColor="White" />26 <PagerStyle BackColor="#864" HorizontalAlign="Center" ForeColor="White"/>27 </asp:GridView>
GridView.aspx.cs
//公有数据 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString); SqlCommand cmd; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { bind(); //正常绑定 } } /// <summary> /// 主题:绑定数据,查询显示个人信息 /// 时间:2012年11月21日14:54:13 /// 描述:通过简单的方法绑定,实现数据显示 /// 作者:小伙 /// </summary> public void bind() { //数据连接web.config中已配置的数据 SqlDataAdapter da = new SqlDataAdapter("select top 5 * from person", con);//使用数据适配器内置查询,自动开闭数据库 DataSet ds = new DataSet();//使用数据集,采取断开式访问数据 da.Fill(ds, "person"); GridView1.DataSource = ds; GridView1.DataKeyNames=new string[]{"pid"};//设置主键 GridView1.DataBind(); } //实现分页 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; this.bind(); } //删除 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { string sqlstr = "delete from person where pid='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'"; con.Open(); cmd = new SqlCommand(sqlstr, con); cmd.ExecuteNonQuery(); con.Close(); bind(); } //取消编辑 protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; bind(); } //编辑 protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; bind(); }//更新 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { string sqlstr = "update person set pname='" +((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',psex='" +((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim()+"',padress='" +((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim()+"',pyoubiao='" +((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim()+"',pprice='" +((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim()+"' where pid='" +GridView1.DataKeys[e.RowIndex].Value.ToString()+"'"; cmd = new SqlCommand(sqlstr, con); con.Open(); cmd.ExecuteNonQuery(); con.Close(); GridView1.EditIndex = -1; bind(); }
运行结果:
运行初始页:
点击编辑:
更新后:
GridView正反双向排序
小实例:
GridView.aspx
1 <asp:GridView ID="GridView1" runat="server" Height="138px" Width="1117px" 2 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" 3 onpageindexchanging="GridView1_PageIndexChanging" 4 onrowcancelingedit="GridView1_RowCancelingEdit" 5 onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 6 onrowupdating="GridView1_RowUpdating" onsorting="GridView1_Sorting"> 7 <Columns> 8 9 <%--<asp:TemplateField HeaderText="身份证号" SortExpression="pid">10 <ItemTemplate>11 <asp:Label ID="Label1" runat="server" Text='<%# Bind("pid") %>'></asp:Label>12 </ItemTemplate>13 </asp:TemplateField>--%>14 <asp:BoundField DataField="pid" HeaderText="身份证号" SortExpression="pid" />15 <asp:BoundField DataField="pname" HeaderText="姓名" SortExpression="pname" />16 <asp:BoundField DataField="psex" HeaderText="性别" SortExpression="psex" />17 <asp:BoundField DataField="padress" HeaderText="地址" SortExpression="padress" />18 <asp:BoundField DataField="pyoubiao" HeaderText="邮编" SortExpression="pyoubiao" />19 <asp:BoundField DataField="pprice" HeaderText="工资起价" SortExpression="pprice" />20 <asp:CommandField HeaderText="选择" ShowSelectButton="True" />21 <asp:CommandField HeaderText="编辑" ShowEditButton="True" />22 <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />23 </Columns>24 <EmptyDataRowStyle BackColor="Red" />25 <HeaderStyle BackColor="#0000CC" Font-Bold="True" ForeColor="White" />26 <PagerStyle BackColor="#864" HorizontalAlign="Center" ForeColor="White"/>27 </asp:GridView>
GridView.aspx.cs
//公有数据 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString); SqlCommand cmd; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ViewState["SortOrder"] = "pname"; ViewState["OrderDire"] = "ASC"; Sortbind1();//排序绑定 } }//排序绑定 public void Sortbind1() { string sqlstr = "select top 5 * from person"; SqlDataAdapter myda = new SqlDataAdapter(sqlstr, con); DataSet ds = new DataSet(); con.Open(); myda.Fill(ds, "person"); DataView view = ds.Tables["person"].DefaultView; string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"]; view.Sort = sort; GridView1.DataSource = view; GridView1.DataBind(); con.Close(); } //排序 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { string sPage = e.SortExpression; if (ViewState["SortOrder"].ToString() == sPage) { if (ViewState["OrderDire"].ToString() == "Desc") { ViewState["OrderDire"] = "ASC"; } else { ViewState["OrderDire"] = "Desc"; } } else { ViewState["SortOrder"] = e.SortExpression; } Sortbind1(); }
运行结果:
排序前:
排序后:
GridView和下拉菜单DropDownList结合
小实例:
GridView.aspx
1 <asp:GridView ID="GridView1" runat="server" Height="138px" Width="1117px" 2 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" 3 onpageindexchanging="GridView1_PageIndexChanging" 4 onrowcancelingedit="GridView1_RowCancelingEdit" 5 onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 6 onrowupdating="GridView1_RowUpdating" onsorting="GridView1_Sorting"> 7 <Columns> 8 9 <%--<asp:TemplateField HeaderText="身份证号" SortExpression="pid">10 <ItemTemplate>11 <asp:Label ID="Label1" runat="server" Text='<%# Bind("pid") %>'></asp:Label>12 </ItemTemplate>13 </asp:TemplateField>--%>14 <asp:BoundField DataField="pid" HeaderText="身份证号" SortExpression="pid" />15 <asp:BoundField DataField="pname" HeaderText="姓名" SortExpression="pname" />16 <asp:TemplateField HeaderText="性别" SortExpression="psex" >17 <ItemTemplate>18 <asp:DropDownList ID="DropDownList1" runat="server" DataSource='<%# ddlbind()%>' DataValueField="psex" DataTextField="psex"/>19 </ItemTemplate>20 </asp:TemplateField>21 <asp:BoundField DataField="padress" HeaderText="地址" SortExpression="padress" />22 <asp:BoundField DataField="pyoubiao" HeaderText="邮编" 23 SortExpression="pyoubiao" />24 <asp:BoundField DataField="pprice" HeaderText="工资起价" SortExpression="pprice" />25 <asp:CommandField HeaderText="选择" ShowSelectButton="True" />26 <asp:CommandField HeaderText="编辑" ShowEditButton="True" />27 <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />28 </Columns>29 <EmptyDataRowStyle BackColor="Red" />30 <HeaderStyle BackColor="#0000CC" Font-Bold="True" ForeColor="White" />31 <PagerStyle BackColor="#864" HorizontalAlign="Center" ForeColor="White"/>32 </asp:GridView>
GridView.aspx.cs
//公有数据 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString); SqlCommand cmd; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Drpbind();//dropdown绑定 } } //DropDownList绑定数据 DropDownList ddl; public void Drpbind() { string sqlstr = "select top 5 * from person"; con.Open(); SqlDataAdapter myda = new SqlDataAdapter(sqlstr, con); DataSet ds = new DataSet(); myda.Fill(ds, "person"); GridView1.DataSource = ds; GridView1.DataBind(); for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { DataRowView mydrv = ds.Tables["person"].DefaultView[i]; if (Convert.ToString(mydrv["psex"]).Trim() == "男") { ddl = (DropDownList)GridView1.Rows[i].FindControl("DropDownList1"); ddl.SelectedIndex = 0; } else if (Convert.ToString(mydrv["psex"]).Trim() == "女") { ddl = (DropDownList)GridView1.Rows[i].FindControl("DropDownList1"); ddl.SelectedIndex = 1; } } con.Close(); } //GridView和下拉菜单DropDownList结合,前台性别列datasouce调用 public SqlDataReader ddlbind() { string sqlstr = "select distinct psex from person";//distinct只显示一次性别 using (cmd = new SqlCommand(sqlstr, con)) { con.Close(); con.Open(); return cmd.ExecuteReader(); } }
运行结果:
GridView和CheckBox结合
小实例:
GridView.aspx
1 <form id="form1" runat="server"> 2 <asp:GridView ID="GridView1" runat="server" Height="138px" Width="1117px" 3 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" 4 onpageindexchanging="GridView1_PageIndexChanging" 5 onrowcancelingedit="GridView1_RowCancelingEdit" 6 onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 7 onrowupdating="GridView1_RowUpdating" PageSize="4"> 8 <Columns> 9 <asp:TemplateField>10 <ItemTemplate>11 <asp:CheckBox ID="CheckBox1" runat="server" />12 </ItemTemplate>13 </asp:TemplateField>14 <asp:BoundField DataField="pid" HeaderText="身份证号" SortExpression="pid" />15 <asp:BoundField DataField="pname" HeaderText="姓名" SortExpression="pname" />16 <asp:BoundField DataField="psex" HeaderText="性别" SortExpression="psex" />17 <asp:BoundField DataField="padress" HeaderText="地址" SortExpression="padress" />18 <asp:BoundField DataField="pyoubiao" HeaderText="邮编" SortExpression="pyoubiao" />19 <asp:BoundField DataField="pprice" HeaderText="工资起价" SortExpression="pprice" />20 <%-- <asp:CommandField HeaderText="选择" ShowSelectButton="True" />21 <asp:CommandField HeaderText="编辑" ShowEditButton="True" />22 <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />--%>23 </Columns>24 <EmptyDataRowStyle BackColor="Red" />25 <HeaderStyle BackColor="#0000CC" Font-Bold="True" ForeColor="White" />26 <PagerStyle BackColor="#864" HorizontalAlign="Center" ForeColor="White"/>27 </asp:GridView>28 <br />29 <asp:CheckBox ID="CheckBox2" runat="server" ForeColor="Red" Text="全选" 30 AutoPostBack="True" oncheckedchanged="CheckBox2_CheckedChanged" />31 32 33 <asp:Button ID="Button1" runat="server" Font-Bold="true" ForeColor="red" 34 Text="删除" onclick="Button1_Click" />35 36 <asp:Button ID="Button2" runat="server" Font-Bold="true" ForeColor="red" 37 Text="取消" onclick="Button2_Click" />38 </form>
GridView.aspx.cs
//公有数据 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString); SqlCommand cmd; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { bind(); //正常绑定 } } public void bind() { //数据连接web.config中已配置的数据 SqlDataAdapter da = new SqlDataAdapter("select * from person", con);//使用数据适配器内置查询,自动开闭数据库 DataSet ds = new DataSet();//使用数据集,采取断开式访问数据 da.Fill(ds, "person"); GridView1.DataSource = ds; GridView1.DataKeyNames=new string[]{"pid"};//设置主键 GridView1.DataBind(); } //利用CheckBox选中信息 protected void CheckBox2_CheckedChanged(object sender, EventArgs e) { for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1"); if (CheckBox2.Checked == true) { cbox.Checked = true; } else { cbox.Checked = false; } } } //删除选中信息 protected void Button1_Click(object sender, EventArgs e) { for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1"); if (cbox.Checked == true) { string sqlstr = "delete from person where pid='" + GridView1.DataKeys[i].Value + "'"; cmd = new SqlCommand(sqlstr, con); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } } bind(); } //取消选中信息 protected void Button2_Click(object sender, EventArgs e) { CheckBox2.Checked = false; for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1"); cbox.Checked = false; } }
运行结果:
鼠标移到GridView某一行时改变该行的背景色方法一
小实例:
GridView.aspx
1 <asp:GridView ID="GridView1" runat="server" Height="138px" Width="1117px" 2 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" 3 onpageindexchanging="GridView1_PageIndexChanging" 4 onrowcancelingedit="GridView1_RowCancelingEdit" 5 onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 6 onrowupdating="GridView1_RowUpdating" PageSize="4" 7 onrowdatabound="GridView1_RowDataBound"> 8 <Columns> 9 <asp:TemplateField>10 <ItemTemplate>11 <asp:CheckBox ID="CheckBox1" runat="server" />12 </ItemTemplate>13 </asp:TemplateField>14 <asp:BoundField DataField="pid" HeaderText="身份证号" SortExpression="pid" />15 <asp:BoundField DataField="pname" HeaderText="姓名" SortExpression="pname" />16 <asp:BoundField DataField="psex" HeaderText="性别" SortExpression="psex" />17 <asp:BoundField DataField="padress" HeaderText="地址" SortExpression="padress" />18 <asp:BoundField DataField="pyoubiao" HeaderText="邮编" SortExpression="pyoubiao" />19 <asp:BoundField DataField="pprice" HeaderText="工资起价" SortExpression="pprice" />20 <%-- <asp:CommandField HeaderText="选择" ShowSelectButton="True" />21 <asp:CommandField HeaderText="编辑" ShowEditButton="True" />22 <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />--%>23 </Columns>24 <EmptyDataRowStyle BackColor="Red" />25 <HeaderStyle BackColor="#0000CC" Font-Bold="True" ForeColor="White" />26 <PagerStyle BackColor="#864" HorizontalAlign="Center" ForeColor="White"/>27 </asp:GridView>
GridView.aspx.cs
//公有数据 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString); SqlCommand cmd; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { bind(); //正常绑定 } } public void bind() { //数据连接web.config中已配置的数据 SqlDataAdapter da = new SqlDataAdapter("select * from person", con);//使用数据适配器内置查询,自动开闭数据库 DataSet ds = new DataSet();//使用数据集,采取断开式访问数据 da.Fill(ds, "person"); GridView1.DataSource = ds; GridView1.DataKeyNames=new string[]{"pid"};//设置主键 GridView1.DataBind(); } //鼠标移动到某一行,改变改行颜色 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { for (int i = 0; i < GridView1.Rows.Count+1; i++) //执行循环,保证每条数据都可以更新 { if (e.Row.RowType == DataControlRowType.DataRow) //首先判断是否是数据行 { //当鼠标停留时更改背景色 e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#999'"); //当鼠标移开时还原背景色 e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c"); } } }
运行结果:
鼠标移到GridView某一行时改变该行的背景色方法二
小实例:
GridView.aspx
View Code
GridView.aspx.cs
1 //鼠标移动到某一行,改变改行颜色 2 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 3 { 4 //如果是绑定数据行 5 if (e.Row.RowType == DataControlRowType.DataRow) 6 { 7 //鼠标经过时,行背景色变 8 e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#999'"); 9 //鼠标移出时,行背景色变 10 e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#087'");11 }12 }
运行结果:
GridView实现删除时弹出确认对话框
小实例:
GridView.aspx
1 <asp:GridView ID="GridView1" runat="server" Height="138px" Width="1117px" 2 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" 3 onpageindexchanging="GridView1_PageIndexChanging" 4 onrowcancelingedit="GridView1_RowCancelingEdit" 5 onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 6 onrowupdating="GridView1_RowUpdating" PageSize="4" 7 onrowdatabound="GridView1_RowDataBound"> 8 <Columns> 9 <asp:TemplateField>10 <ItemTemplate>11 <asp:CheckBox ID="CheckBox1" runat="server" />12 </ItemTemplate>13 </asp:TemplateField>14 <asp:BoundField DataField="pid" HeaderText="身份证号" SortExpression="pid" />15 <asp:BoundField DataField="pname" HeaderText="姓名" SortExpression="pname" />16 <asp:BoundField DataField="psex" HeaderText="性别" SortExpression="psex" />17 <asp:BoundField DataField="padress" HeaderText="地址" SortExpression="padress" />18 <asp:BoundField DataField="pyoubiao" HeaderText="邮编" SortExpression="pyoubiao" />19 <asp:BoundField DataField="pprice" HeaderText="工资起价" SortExpression="pprice" />20 <%-- <asp:CommandField HeaderText="选择" ShowSelectButton="True" />21 <asp:CommandField HeaderText="编辑" ShowEditButton="True" />--%>22 <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />23 </Columns>24 <EmptyDataRowStyle BackColor="Red" />25 <HeaderStyle BackColor="#0000CC" Font-Bold="True" ForeColor="White" />26 <PagerStyle BackColor="#864" HorizontalAlign="Center" ForeColor="White"/>27 </asp:GridView>
View Code
GridView.aspx.cs
1 //鼠标移动到某一行,改变改行颜色 2 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 3 { 4 #region 5 //如果是绑定数据行 6 if (e.Row.RowType == DataControlRowType.DataRow) 7 { 8 //鼠标经过时,行背景色变 9 e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#999'");10 //鼠标移出时,行背景色变 11 e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#087'");12 }13 #endregion14 //如果是绑定数据行 15 if (e.Row.RowType == DataControlRowType.DataRow)16 {17 if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)18 {19 ((LinkButton)e.Row.Cells[7].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");20 }21 } 22 }
运行结果:
GridView实现自动编号
小实例:
GridView.aspx
前台代码如上
GridView.aspx.cs
绑定显示数据代码如上,不再总结,以下只做主要代码:
1 //实现自动编号 2 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 3 { 4 #region 5 //如果是绑定数据行 6 if (e.Row.RowType == DataControlRowType.DataRow) 7 { 8 //鼠标经过时,行背景色变 9 e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#999'");10 //鼠标移出时,行背景色变 11 e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#087'");12 }13 #endregion14 #region15 //如果是绑定数据行 16 if (e.Row.RowType == DataControlRowType.DataRow)17 {18 if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)19 {20 ((LinkButton)e.Row.Cells[8].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");21 }22 }23 #endregion24 if (e.Row.RowIndex != -1)25 {26 int id = e.Row.RowIndex + 1;27 e.Row.Cells[0].Text = id.ToString();28 }29 }
运行结果:
GridView实现用“...”代替超长字符串
小实例:
GridView.aspx
1 <asp:GridView ID="GridView1" runat="server" Height="138px" Width="1117px" 2 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" 3 onpageindexchanging="GridView1_PageIndexChanging" 4 onrowcancelingedit="GridView1_RowCancelingEdit" 5 onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 6 onrowupdating="GridView1_RowUpdating" PageSize="4" 7 onrowdatabound="GridView1_RowDataBound"> 8 <Columns> 9 <asp:BoundField DataField="id" HeaderText="证号" SortExpression="id" />10 <asp:TemplateField>11 <ItemTemplate>12 <asp:CheckBox ID="CheckBox1" runat="server" />13 </ItemTemplate>14 </asp:TemplateField>15 <asp:BoundField DataField="pid" HeaderText="身份证号" SortExpression="pid" />16 <asp:BoundField DataField="pname" HeaderText="姓名" SortExpression="pname" />17 <asp:BoundField DataField="psex" HeaderText="性别" SortExpression="psex" />18 <asp:BoundField DataField="padress" HeaderText="地址" SortExpression="padress" />19 <asp:BoundField DataField="pyoubiao" HeaderText="邮编" SortExpression="pyoubiao" />20 <asp:BoundField DataField="pprice" HeaderText="工资起价" SortExpression="pprice" />21 <%-- <asp:CommandField HeaderText="选择" ShowSelectButton="True" />22 <asp:CommandField HeaderText="编辑" ShowEditButton="True" />--%>23 <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />24 </Columns>25 <EmptyDataRowStyle BackColor="Red" />26 <HeaderStyle BackColor="#0000CC" Font-Bold="True" ForeColor="White" />27 <PagerStyle BackColor="#864" HorizontalAlign="Center" ForeColor="White"/>28 </asp:GridView>
GridView.aspx.cs
1 public void bind() 2 { 3 //数据连接web.config中已配置的数据 4 SqlDataAdapter da = new SqlDataAdapter("select * from person", con);//使用数据适配器内置查询,自动开闭数据库 5 DataSet ds = new DataSet();//使用数据集,采取断开式访问数据 6 da.Fill(ds, "person"); 7 GridView1.DataSource = ds; 8 GridView1.DataKeyNames=new string[]{"pid"};//设置主键 9 GridView1.DataBind();10 //省略字符11 for (int i = 0; i <= GridView1.Rows.Count - 1; i++)12 {13 DataRowView mydrv;14 string gIntro;15 if (GridView1.PageIndex == 0)16 {17 mydrv = ds.Tables["person"].DefaultView[i];18 gIntro = Convert.ToString(mydrv["padress"]);19 GridView1.Rows[i].Cells[5].Text = SubStr(gIntro, 2);20 }21 else22 {23 mydrv = ds.Tables["person"].DefaultView[i + (5 * GridView1.PageIndex)];24 gIntro = Convert.ToString(mydrv["padress"]);25 GridView1.Rows[i].Cells[5].Text = SubStr(gIntro, 2);26 }27 }28 }29 30 public string SubStr(string sString, int nLeng)31 {32 if (sString.Length <= nLeng)33 {34 return sString;35 }36 string sNewStr = sString.Substring(0, nLeng);37 sNewStr = sNewStr + "...";38 return sNewStr;39 }
运行结果:
GridView显示隐藏某一列
小实例:
GridView.aspx
1 <asp:GridView ID="GridView1" runat="server" Height="138px" Width="1117px" 2 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" 3 onpageindexchanging="GridView1_PageIndexChanging" 4 onrowcancelingedit="GridView1_RowCancelingEdit" 5 onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 6 onrowupdating="GridView1_RowUpdating" PageSize="4" 7 onrowdatabound="GridView1_RowDataBound"> 8 <Columns> 9 <asp:BoundField DataField="id" HeaderText="证号" SortExpression="id" />10 <asp:TemplateField>11 <ItemTemplate>12 <asp:CheckBox ID="CheckBox1" AutoPostBack="true" runat="server" />13 </ItemTemplate>14 </asp:TemplateField>15 <asp:BoundField DataField="pid" HeaderText="身份证号" SortExpression="pid" />16 <asp:BoundField DataField="pname" HeaderText="姓名" SortExpression="pname" />17 <asp:BoundField DataField="psex" HeaderText="性别" SortExpression="psex" />18 <asp:BoundField DataField="padress" HeaderText="地址" SortExpression="padress" />19 <asp:BoundField DataField="pyoubiao" HeaderText="邮编" SortExpression="pyoubiao" />20 <asp:BoundField DataField="pprice" HeaderText="工资起价" SortExpression="pprice" />21 <%-- <asp:CommandField HeaderText="选择" ShowSelectButton="True" />22 <asp:CommandField HeaderText="编辑" ShowEditButton="True" />--%>23 <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />24 </Columns>25 <EmptyDataRowStyle BackColor="Red" />26 <HeaderStyle BackColor="#0000CC" Font-Bold="True" ForeColor="White" />27 <PagerStyle BackColor="#864" HorizontalAlign="Center" ForeColor="White"/>28 </asp:GridView>29 <br />30 <asp:CheckBox ID="CheckBox2" runat="server" ForeColor="Red" Text="全选" 31 AutoPostBack="True" oncheckedchanged="CheckBox2_CheckedChanged" />32 33 <asp:CheckBox ID="CheckBox3" runat="server" ForeColor="Red" Text="隐藏工资起价" 34 AutoPostBack="True" oncheckedchanged="CheckBox3_CheckedChanged" />35 36 37 <asp:Button ID="Button1" runat="server" Font-Bold="true" ForeColor="red" 38 Text="删除" onclick="Button1_Click" />39 40 <asp:Button ID="Button2" runat="server" Font-Bold="true" ForeColor="red" 41 Text="取消" onclick="Button2_Click" />
GridView.aspx.cs
public void bind() { //数据连接web.config中已配置的数据 SqlDataAdapter da = new SqlDataAdapter("select * from person", con);//使用数据适配器内置查询,自动开闭数据库 DataSet ds = new DataSet();//使用数据集,采取断开式访问数据 da.Fill(ds, "person"); GridView1.DataSource = ds; GridView1.DataKeyNames=new string[]{"pid"};//设置主键 GridView1.DataBind(); //省略字符 #region for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { DataRowView mydrv; string gIntro; if (GridView1.PageIndex == 0) { mydrv = ds.Tables["person"].DefaultView[i]; gIntro = Convert.ToString(mydrv["padress"]); GridView1.Rows[i].Cells[5].Text = SubStr(gIntro, 2); } else { mydrv = ds.Tables["person"].DefaultView[i + (5 * GridView1.PageIndex)]; gIntro = Convert.ToString(mydrv["padress"]); GridView1.Rows[i].Cells[5].Text = SubStr(gIntro, 2); } } #endregion //隐藏列 GridView1.Columns[7].Visible = false;//一开始隐藏 CheckBox3.Checked = false;//如果不这样后面的代码会把他True } //隐藏列 protected void CheckBox3_CheckedChanged(object sender, EventArgs e) { GridView1.Columns[7].Visible = !GridView1.Columns[7].Visible; Response.Write("GridView1的第8列现在的显示隐藏状态是:" + GridView1.Columns[7].Visible.ToString()); }
运行结果:
GridView弹出新页面/弹出新窗口
小实例:
GridView.aspx
运行结果:
GridView突出显示某一单元格(工资低于10000元)
小实例:
GridView.aspx
1 <asp:GridView ID="GridView1" runat="server" Height="138px" Width="1117px" 2 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" 3 onpageindexchanging="GridView1_PageIndexChanging" 4 onrowcancelingedit="GridView1_RowCancelingEdit" 5 onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 6 onrowupdating="GridView1_RowUpdating" PageSize="4" 7 onrowdatabound="GridView1_RowDataBound"> 8 <Columns> 9 <asp:BoundField DataField="pid" HeaderText="身份证号" SortExpression="pid" />10 <%-- <asp:BoundField DataField="pname" HeaderText="姓名" SortExpression="pname" />--%>11 12 <asp:HyperLinkField HeaderText="姓名" Text="姓名" DataNavigateUrlFields="pname" DataNavigateUrlFormatString="WebForm1.aspx?GoodsID={0}" Target="mainframe" NavigateUrl="~/WebForm1.aspx" DataTextField="pname" >13 </asp:HyperLinkField>14 <asp:BoundField DataField="psex" HeaderText="性别" SortExpression="psex" />15 <asp:BoundField DataField="padress" HeaderText="地址" SortExpression="padress" />16 <asp:BoundField DataField="pyoubiao" HeaderText="邮编" SortExpression="pyoubiao" />17 <asp:BoundField DataField="pprice" HeaderText="工资起价" DataFormatString="{0:C}" SortExpression="pprice" />18 <asp:CommandField HeaderText="选择" ShowSelectButton="True" />19 <asp:CommandField HeaderText="编辑" ShowEditButton="True" />20 <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />21 </Columns>22 <EmptyDataRowStyle BackColor="Red" />23 <HeaderStyle BackColor="#0000CC" Font-Bold="True" ForeColor="White" />24 <PagerStyle BackColor="#864" HorizontalAlign="Center" ForeColor="White"/>25 </asp:GridView>
GridView.aspx.cs
public void bind() { //数据连接web.config中已配置的数据 SqlDataAdapter da = new SqlDataAdapter("select * from person", con);//使用数据适配器内置查询,自动开闭数据库 DataSet ds = new DataSet();//使用数据集,采取断开式访问数据 da.Fill(ds, "person"); GridView1.DataSource = ds; GridView1.DataKeyNames=new string[]{"pid"};//设置主键 GridView1.DataBind(); //省略字符 #region //for (int i = 0; i <= GridView1.Rows.Count - 1; i++) //{ // DataRowView mydrv; // string gIntro; // if (GridView1.PageIndex == 0) // { // mydrv = ds.Tables["person"].DefaultView[i]; // gIntro = Convert.ToString(mydrv["padress"]); // GridView1.Rows[i].Cells[3].Text = SubStr(gIntro, 2); // } // else // { // mydrv = ds.Tables["person"].DefaultView[i + (5 * GridView1.PageIndex)]; // gIntro = Convert.ToString(mydrv["padress"]); // GridView1.Rows[i].Cells[5].Text = SubStr(gIntro, 2); // } //} #endregion //隐藏列 //GridView1.Columns[3].Visible = false;//一开始隐藏 //CheckBox3.Checked = false;//如果不这样后面的代码会把他True //突出显示某一单元格(工资起价少于10000) for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { DataRowView mydrv = ds.Tables["person"].DefaultView[i]; string price = Convert.ToString(mydrv["pprice"]); if (Convert.ToDouble(price) < 10000)//大家这里根据具体情况设置可能ToInt32等等 { GridView1.Rows[i].Cells[5].BackColor = System.Drawing.Color.Red; } } }
运行结果:
GridView数据导入Excel/Excel数据读入GridView
小实例:
GridView.aspx
添加:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView.aspx.cs"
Inherits="DBControls.GridView" EnableEventValidation = "false"
%>
<asp:GridView ID="GridView1" runat="server" Height="138px" Width="1117px" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" onpageindexchanging="GridView1_PageIndexChanging" onrowcancelingedit="GridView1_RowCancelingEdit" onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating" PageSize="4" onrowdatabound="GridView1_RowDataBound"> <Columns> <asp:BoundField DataField="pid" HeaderText="身份证号" SortExpression="pid" /><%-- <asp:BoundField DataField="pname" HeaderText="姓名" SortExpression="pname" />--%> <asp:HyperLinkField HeaderText="姓名" Text="姓名" DataNavigateUrlFields="pname" DataNavigateUrlFormatString="WebForm1.aspx?GoodsID={0}" Target="mainframe" NavigateUrl="~/WebForm1.aspx" DataTextField="pname" > </asp:HyperLinkField> <asp:BoundField DataField="psex" HeaderText="性别" SortExpression="psex" /> <asp:BoundField DataField="padress" HeaderText="地址" SortExpression="padress" /> <asp:BoundField DataField="pyoubiao" HeaderText="邮编" SortExpression="pyoubiao" /> <asp:BoundField DataField="pprice" HeaderText="工资起价" DataFormatString="{0:C}" SortExpression="pprice" /> <asp:CommandField HeaderText="选择" ShowSelectButton="True" /> <asp:CommandField HeaderText="编辑" ShowEditButton="True" /> <asp:CommandField HeaderText="删除" ShowDeleteButton="True" /> </Columns> <EmptyDataRowStyle BackColor="Red" /> <HeaderStyle BackColor="#0000CC" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#864" HorizontalAlign="Center" ForeColor="White"/> <FooterStyle BackColor="White" HorizontalAlign="Center" ForeColor="Red"/> </asp:GridView>
GridView.aspx.cs
//导出数据 protected void Button3_Click(object sender, EventArgs e) { Export("application/ms-excel", "student.xls"); } private void Export(string FileType, string FileName) { Response.Charset = "GB2312"; Response.ContentEncoding = System.Text.Encoding.UTF7; Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString()); Response.ContentType = FileType; this.EnableViewState = false; StringWriter tw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(tw); GridView1.RenderControl(hw); Response.Write(tw.ToString()); Response.End(); } //如果没有下面方法会报错 public override void VerifyRenderingInServerForm(Control control) { }
运行结果:
导出结果:
- GridView基本操作事件
- GridView的基本操作
- gridview基本数据操作
- asp.net GridView 事件操作
- GridView RowCommand事件操作Demo Code
- GridView基本的编辑,更新,删除操作
- GridView基本的编辑,更新,删除操作
- GridView基本的编辑,更新,删除操作
- ASP.NET gridview 的基本操作
- GridView 基本操作 编辑,删除学习
- GridView基本的操作 编辑 更新 取消
- 控件基本操作与基本事件响应
- GridView 事件
- GridView事件
- GridView事件
- GridView 事件
- gridview事件
- GridView 事件
- Java小问题
- DB2函数大全
- Cookie的作用范围
- SPOJ 74. Divisor Summation 分解数字的因子
- c语言---选择结构
- GridView基本操作事件
- 判断Android设备是否连接网络
- Android开发之大位图压缩水印处理
- java 连接数据库的方式主要有两种
- 《C++ Primer第四版》学习笔记(一) 快速入门 - helloWord
- 游戏开发中的数学和物理算法(2):定义线
- Android Handler机制
- 新辰:致广大的草根个人站长,你到底是站长还是作家?
- DP专辑之线性DP