我有一个Gridview。标记如下...
<asp:GridView ID="gvwServers" runat="server" class="gvwServers"
AutoGenerateColumns="false" OnRowEditing="gvwServers_Edit"
onrowcancelingedit="gvwServers_Cancelling" onrowdeleting="gvwServers_Deleting"
onrowupdated="gvwServers_Updated" onrowupdating="gvwServers_Updating"
AutoGenerateEditButton=true AutoGenerateDeleteButton=true>
<columns>
<asp:CommandField ButtonType="Button" EditText="Edit" ShowEditButton="true" />
<asp:CommandField ButtonType="Button" EditText="Delete" ShowDeleteButton="true" />
...Bound fields and template fields etc...
我的 Code-behind 有这个...
protected void gvwServers_Edit(object sender, GridViewEditEventArgs e)
{
gvwServers.EditIndex = e.NewEditIndex;
gvwServers.DataBind();
}
protected void gvwServers_Updated(object sender, GridViewUpdatedEventArgs e)
{
gvwServers.DataBind();
}
protected void gvwServers_Updating(object sender, GridViewUpdateEventArgs e)
{
gvwServers.DataBind();
}
protected void gvwServers_Deleting(object sender, GridViewDeleteEventArgs e)
{
gvwServers.DataBind();
}
protected void gvwServers_Cancelling(object sender, GridViewCancelEditEventArgs e)
{
e.Cancel = true;
gvwServers.EditIndex = -1;
gvwServers.DataBind();
}
事实上,这些例程中的大多数都能正确触发,即编辑、删除和取消。但是当我点击“更新”按钮时,“gvwServers_Edit()”会被触发,这是为什么?如何使“更新”按钮点击触发“gvwServers_Updating()”呢?
更新:我的问题已在此处得到解决:here。
onrowupdating="gvwServers_Updating"
并定义函数gvwServers_Updating(object sender, GridViewUpdateEventArgs e)
不是将事件映射到函数吗?我不明白为什么我单击更新时会触发gvwServers_Edit
函数。 - El Ronnoco