c# - 更新按钮触发编辑事件处理程序

标签 c# asp.net events gridview asp.net-webcontrol

我有一个 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...

我的代码隐藏有这个...

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()

更新:我的问题已解决here .

最佳答案

您始终可以将事件重新映射到函数..

几乎...“编辑”事件只能映射到以 (object sender, GridViewCancelEditEventArgs e) 作为参数的函数,同样,更新函数必须具有 (object sender, GridViewUpdatedEventArgs e) 参数...

您可以使用预制的事件处理函数或自己制作,同样关键是“e”参数类型。

如果您希望 Edit() 和 Updating() 事件具有共同的功能,请将该代码放入一个单独的函数中,在这些事件触发时由处理程序调用。

关于c# - 更新按钮触发编辑事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4852474/

相关文章:

javascript - 更改 v-for 数组中每个元素的属性

events - Google Street View API V3 - 瓦片加载事件?

c# - 调用给定类型名称的静态函数

c# - 如何使用 System.Drawing 将旋转的字符串绘制为图像?

ASP.NET核心: Calling web api returns 500

jQuery 对用户触发器和程序触发器的 click() 响应不同

c# - 从 asp.net 按钮单击以编程方式打开 sitecore 媒体库

c# - 新安装的 Visual Studio 2015 中缺少 Windows 窗体模板

c# - 在不使用 foreach 的情况下从数据库对象获取数据

c# - 无法从 GridView 中的 TemplateField 获取文本