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。

原创粉丝点击