ASP.NET GridView_第二篇_CommandField
来源:互联网 发布:红帽子linux 编辑:程序博客网 时间:2024/06/05 04:15
CommandField
<%@ Page Language="C#" %> <%@ Import Namespace="System.Data"%><%@ Import Namespace="System.Web.UI"%><!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <scriptrunat="server"> protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.Bind(); } } private void Bind() { DataTable dt = this.CreateDataSource(); GridView1.DataSource = dt; GridView1.DataKeyNames = new string[] { "c1" }; GridView1.DataBind(); } private DataTable CreateDataSource() { DataTable dt = new DataTable(); dt.Columns.Add("c1", typeof(int)); dt.Columns.Add("c2", typeof(string)); dt.Columns.Add("c3", typeof(string)); for (int i = 1; i <= 100; i++) { DataRow dr = dt.NewRow(); dr[0] = i; dr[1] = i * 10; dr[2] = i * 100; dt.Rows.Add(dr); } return dt; } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgse) { GridView1.PageIndex = e.NewPageIndex; this.Bind(); } protected void GridView1_RowEditing(object sender, GridViewEditEventArgse) { GridView1.EditIndex = e.NewEditIndex; Bind(); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgse) { string sqlStr = "DELETE FROM RECORDNOWRAP WHERE c1=:var"; string keyValue = GridView1.DataKeys[e.RowIndex].Value.ToString(); sqlStr = sqlStr.Replace(":var", keyValue); // 执行数据删除 this.TextBox1.Text = "已删除主键为 " +keyValue + " 的记录."; Bind(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgse) { GridView1.EditIndex = -1; Bind(); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgse) { string sqlStr = "UPDATE RECORDNOWRAP SETc1=:var1,c2=':var2',c3=':var3' WHERE c1=:vKeyValue"; string keyValue = GridView1.DataKeys[e.RowIndex].Value.ToString(); string var1 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim(); string var2 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim(); string var3 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim(); sqlStr = sqlStr.Replace(":var1", var1).Replace(":var2",var2).Replace(":var3", var3).Replace(":vKeyValue",keyValue); // 执行数据库更新 this.TextBox1.Text = "已更新主键为 " +keyValue + " 的记录."; GridView1.EditIndex = -1; Bind(); } protected void GridView1_SelectedIndexChanged(object sender, EventArgse) { int index = GridView1.SelectedIndex; TextBox1.Text =GridView1.DataKeys[index].Value.ToString(); } </script> </head><body> <formid="form1" runat="server"> <asp:GridViewID="GridView1" runat="server" AutoGenerateColumns="False"AllowPaging="True" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating"OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnPageIndexChanging="GridView1_PageIndexChanging"> <Columns> <asp:CommandField HeaderText="选择" ShowSelectButton="True"SelectText="选择" /> <asp:CommandField HeaderText="编辑" ShowEditButton="True"SelectText="select" CancelText="取消" EditText="编辑" UpdateText="更新" /> <asp:CommandField HeaderText="删除" ShowDeleteButton="True"SelectText="select" DeleteText="删除" /> <asp:BoundField DataField="c1" HeaderText="列1" /> <asp:BoundField DataField="c2" HeaderText="列2" /> <asp:BoundField DataField="c3" HeaderText="列3" /> </Columns> </asp:GridView> <asp:TextBoxID="TextBox1" runat="server"></asp:TextBox> </form></body></html>
说明
1,在 Bind() 函数里,设置主键,可以为多个。这样才能在以后使用GridView1.DataKeys[...].Value。
- ASP.NET GridView_第二篇_CommandField
- ASP.NET GridView_第三篇_HyperLinkField和ButtonField
- ASP.NET GridView_第四篇_控件和HTML标记的容器 TemplateField 模板列
- ASP.NET GridView_第五篇_用途多多的 OnRowDataBound 事件
- ASP.NET GridView_第一篇_分页并排序
- Asp.net管道 (第二篇)
- Asp.net管道 (第二篇)
- asp.net第二天
- asp.net第二天
- ASP.net第二章总结
- ASP.NET MVC——第二篇:第一个页面
- ASP.NET MVC4 系列教程之第二篇 (MVC4基础)
- ASP.NET教程第二讲 ASP.NET控件
- ASP.NET揭秘(第二版)(01)
- ASP.Net调试之三板斧:第二招
- ASP.NET杂志第二期发布
- 十天学会ASP.NET第二天
- 第二天ASP.NET学习总结
- oracle常用命令
- 学习JAVA的感受
- Postfix SASL身份验证
- 工作后能捡起英语的三个网站
- 让巨人诺基亚携手MeeGo翻过泛黄的苹果iPhone
- ASP.NET GridView_第二篇_CommandField
- Asp.Net开发组件
- 自动检查安装软件包
- [Reprinted] Madden 2010's entertainment kicked off voting handsome boys & girls!
- The key three-step reading of modern culture
- 邮件投递过程
- 【主备倒换】进程间的数据同步
- 最近面试的一点感受
- SVN插件安装