2011-01-31 86 views
3

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

回答

0

您可以随时重新映射事件到功能..

差不多嘛......“编辑”事件只能映射到具有(object sender, GridViewCancelEditEventArgs e)一个函数作为参数,可以同样更新功能必须(object sender, GridViewUpdatedEventArgs e) PARAMS ...

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

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

+0

不是说`onrowupdating =“gvwServers_Updating”`并定义函数`gvwServers_Updating(object sender,GridViewUpdateEventArgs e)`将事件映射到函数?我不明白为什么`gvwServers_Edit`功能点击更新时触发。 – 2011-01-31 20:36:54