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

时间:2011-01-31 15:12:17

标签: 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();
}

事情是大多数这些例程正确启动,即编辑,删除,取消。单击“更新”按钮时,外,gvwServers_Edit()将会触发。为什么会这样?如何点击“更新”按钮点击gvwServers_Updating()

更新:我的问题已解决here

1 个答案:

答案 0 :(得分:0)

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

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

您可以使用预先制作的事件处理功能或创建自己的事件,键也可以是'e'参数类型。

如果要为Edit()和Updating()事件提供通用功能,请将该代码放入一个单独的函数中,当这些事件触发时,处理程序将调用该函数。