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 ครับ ดังนี้ครับ
{
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 ประมาณข้างล่างนี่ครับ
{
gvListName.EditIndex = -1;
/*
ทำการ bind data ใน Data Grid ใหม่อีกรอบ น่ะครับ
*/
}
event ต่อมาก็ ตอน กด update ครับ code ประมาณข้างล่างครับ
{
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 ครับ
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
*/
}





