GridView Edit Delete

CODE
<asp:GridView  ID=”gvListName” runat=”server” AutoGenerateColumns=”False” Width=”898″
OnRowEditing=”gvListName_RowEditing”
OnRowCancelingEdit=”gvListName_RowCancelingEdit”
OnRowUpdating=”gvListName_RowUpdating”
OnRowDeleting=”gvListName_RowDeleting” >

<Columns >
<asp:TemplateField HeaderText=”Name” >
<ItemTemplate >
<%#Eval(“Name”)%><asp:HiddenField ID=”hddName” runat=”server” Value=’<%#Eval(“Name”)%>’ />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID=”txtName” runat=”server” />
</EditItemTemplate>
</asp:TemplateField>
</asp:TemplateField>
<asp:CommandField ButtonType=”Button” ShowEditButton=”true” ShowCancelButton=”true” HeaderText=”Edit”  />
<asp:CommandField ShowDeleteButton=”True” HeaderText=”Remove” ButtonType=”Button”/>
</Columns>

</asp:GridView>

โดยให้แยกออก เป็น 4 event ของ GridView ใหญ่ๆ 4 event ครับ
OnRowEditing — > คือ event เมื่อตอน click edit ครับ เมื่อกดปุ่มนี้แล้วจะ generate ได้ออกมาเป็น Update button กับ Cancle button ครับ
OnRowCancelingEdit — > คือ event เมื่อ ตอนกด cancle หลังจาก กด edit แล้ว ครับ
OnRowUpdating — > คือ event เมื่อ ตอนกด update หนังจากกด edit แล้วครับ
OnRowDeleting — > คือ event ตอนกด delete button น่ะครับ อยู่ columns สุดท้าย

ที่ event แรกให้ เขียน code เพื่อกำหนด index ที่ต้องการ edit ใน Grid View ครับ ดังนี้ครับ

CODE
protected void gvListName_RowEditing(object sender, GridViewEditEventArgs e)
{
HiddenField hddName = (sender as GridView).Rows[e.NewEditIndex].FindControl(“hddName”) as HiddenField;

gvListName.EditIndex = e.NewEditIndex;

/*
ทำการ bind data ใน Data Grid ใหม่อีกรอบ น่ะครับ
*/

TextBox txtName = (sender as GridView).Rows[e.NewEditIndex].FindControl(“txtName”) as TextBox;
txtName.Text =  hddName.value;

}

ต่อมาก็ event แรกครับ เมื่อกด Cancle ครับ code ประมาณข้างล่างนี่ครับ

CODE
protected void gvListName_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvListName.EditIndex = -1;
/*
ทำการ bind data ใน Data Grid ใหม่อีกรอบ น่ะครับ
*/
}

event ต่อมาก็ ตอน กด update ครับ code ประมาณข้างล่างครับ

CODE
protected void gvListName_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridView gv = sender as GridView;

TextBox txtName = gv.Rows[gv.EditIndex].FindControl(“txtName”) as TextBox;

/*
do code something here
*/

e.Cancel = true;
gvDateList.EditIndex = -1;
/*
ทำการ bind data ใน Data Grid ใหม่อีกรอบ น่ะครับ
*/
}

event สุดท้ายก็ delete ครับ

CODE

protected void gvListName_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
GridView gv = sender as GridView;
TextBox txtName = gv.Rows[gv.EditIndex].FindControl(“txtName”) as TextBox;
/*
do code something here

and rebind data agin
*/
}

บันทึกโพสใน โปรเเกรมมิ่ง(Programming). ป้ายกำกับ: . Leave a Comment »

ใส่ความเห็น