[ASP.NET]GridViewカスタム編集、更新、キャンセル、削除
5679 ワード
1、問題の説明
今日ネット上である人がどのようにGridViewの編集をカスタマイズすることを聞くことを見て、更新して、取り消して、ボタンを削除して、GridViewは持っているのがあまりにもみっともないです
2、要求に達する
トランスフォーム編集、更新、キャンセル、削除ボタン
3、実現方法
(1)最初のステップでGridViewの「CommandField」を「TemplateFiledテンプレート」に変更
(2)第2のステップでは、「テンプレートの編集」でこのフィールドを編集します.方法は、他のテンプレートの編集と同じです.例えば、私の例では、「ItemTemplate」に2つのImageButtonを追加し、「EditTemplate」に2つのLinkButtonを追加します.
編集、削除、更新、キャンセルをそれぞれ表します.
(3)第3歩は、RowCancelingEdit、RowEditing、RowUpdating、RowDeletingなどのイベントを追加することです.
注意:手順2の4つのコントロールには、「Edit」、「Delete」、「Update」、「Cancel」のそれぞれにCommandNameを追加する必要があります.
Okが成功した!
マイコード:
今日ネット上である人がどのようにGridViewの編集をカスタマイズすることを聞くことを見て、更新して、取り消して、ボタンを削除して、GridViewは持っているのがあまりにもみっともないです
2、要求に達する
トランスフォーム編集、更新、キャンセル、削除ボタン
3、実現方法
(1)最初のステップでGridViewの「CommandField」を「TemplateFiledテンプレート」に変更
(2)第2のステップでは、「テンプレートの編集」でこのフィールドを編集します.方法は、他のテンプレートの編集と同じです.例えば、私の例では、「ItemTemplate」に2つのImageButtonを追加し、「EditTemplate」に2つのLinkButtonを追加します.
編集、削除、更新、キャンセルをそれぞれ表します.
(3)第3歩は、RowCancelingEdit、RowEditing、RowUpdating、RowDeletingなどのイベントを追加することです.
注意:手順2の4つのコントロールには、「Edit」、「Delete」、「Update」、「Cancel」のそれぞれにCommandNameを追加する必要があります.
Okが成功した!
マイコード:
<form id="form1" runat="server">
<div>
<gridview id="GridView1" runat="server" autogeneratecolumns="False" datakeynames="CID" onrowcancelingedit="GridView1_RowCancelingEdit" onrowupdating="GridView1_RowUpdating" onrowediting="GridView1_RowEditing" onrowdeleting="GridView1_RowDeleting">
<columns>
<templatefield headertext=" ">
<itemtemplate>
<label text="<%# Eval("CID") %>" runat="server"/>
</itemtemplate>
<edititemtemplate>
<textbox id="TextBox1" runat="server" text="<%# Eval("CID") %>"/>
</edititemtemplate>
</templatefield>
<templatefield headertext=" ">
<itemtemplate>
</itemtemplate>
<edititemtemplate>
<textbox id="TextBox2" runat="server" text="<%#DataBinder.Eval(Container.DataItem,"CName") %>"/>
</edititemtemplate>
</templatefield>
<templatefield>
<itemtemplate>
<imagebutton id="Button2" runat="server" imageurl="~/Imgs/btnEdit.png" commandname="Edit"/>
<imagebutton id="ImageButton1" runat="server" imageurl="~/Imgs/btnDelete.png" commandname="Delete"/>
</itemtemplate>
<edititemtemplate>
<linkbutton id="Button1" runat="server" text=" " commandname="Update"/>
<linkbutton id="Button3" runat="server" text=" " commandname="Cancel"/>
</edititemtemplate>
</templatefield>
</columns>
</gridview>
</div>
</form>
</code></pre>
<p><br/> </p>
<pre><code> string strCon = "Data Source=192.168.0.105;Initial Catalog=TreeView;Integrated Security=True";
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
BindGridView();
}
}
private void BindGridView()
{
SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlCommand cmd = new SqlCommand("SELECT [CID], [CName] FROM [ClassTable]", con);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds);
this.GridView1.DataSource = ds.Tables[0];
this.GridView1.DataBind();
con.Close();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
BindGridView();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindGridView();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
string CID = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1")).Text;
string CName = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox2")).Text;
string strUpdate = "UPDATE ClassTable set CID='" + CID + "',CName='" + CName + "' where CID=" + CID;
SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlCommand cmd = new SqlCommand(strUpdate, con);
cmd.ExecuteNonQuery();
con.Close();
GridView1.EditIndex = -1;
BindGridView();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
string strDel = "DELETE FROM ClassTable where CID=" + id;
SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlCommand cmd = new SqlCommand(strDel, con);
cmd.ExecuteNonQuery();
con.Close();
BindGridView();
}</code></pre>
<p><br/> </p>
</div>
</div>
</div>
</div>