我有一个网格视图。标记是这样的...
<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...
我的代码隐藏有这个...
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();
}
问题是,大多数例程都能正确触发,即编辑、删除、取消。Except当我单击“更新”按钮时,gvwServers_Edit()
火灾。为什么会发生这种情况?如何让更新按钮点击触发gvwServers_Updating()
?
Update:我的问题已解决here https://stackoverflow.com/questions/4862305/asp-does-not-appear-to-be-emitting-correct-gridview-markup-for-dopostback.
您始终可以将事件重新映射到函数。
好吧,几乎......“编辑”事件只能映射到具有(object sender, GridViewCancelEditEventArgs e)
作为参数,同样更新函数必须具有(object sender, GridViewUpdatedEventArgs e)
参数...
您可以使用预制的事件处理函数或创建自己的事件处理函数,同样关键是“e”参数类型。
如果您希望 Edit() 和 Updating() 事件具有通用功能,请将该代码放入一个单独的函数中,当这些事件触发时,处理程序将调用该函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)