0

我正在使用 ASP.NET 开发我的 Web 应用程序,我遇到了需要在 GridView 更新事件上区分更新插入的情况。

 protected void GridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
 {
    //conditional check
    if(Update Flage){
        //Call Update Function
    }
    else{
        //Call Insert Function
    }
 }

我在 GridView 中有一个ItemTemplateEditItemTemplate,当单击 Edit Button(在 ItemTemplate 上),然后更改为 Update Button(在 EditItemTemplate 上)。

在此处输入图像描述

我在 GridView 之外有一个添加按钮,单击后,将新行添加到 GridView 并将按钮文本更改为添加,如下代码片段:

ds.Tables[0].Rows.InsertAt(ds.Tables[0].NewRow(), 0);
GridViewID.EditIndex = 0;

LinkButton cmdButton = GridView.Rows[0].FindControl("btnUpdate") as LinkButton;
cmdButton.Text = "Add";

我知道有用于插入行的 InsertItemTemplate,但在我的情况下,我使用 GridView 之外的 Button 来添加新的编辑行。

那么,如何区分 RowUpdating 事件的编辑或插入?有什么推荐的技巧来实现这一目标吗?也许像添加一个 HiddenField 作为一个标志。

提前谢谢你。

4

1 回答 1

0

您可以根据该命令名称值识别事件

例如。

 protected void GridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
     {
       string arg = e.CommandName.ToString();
    if(arg="Edit")
     {
     }
    else if(arg=="Update")
      {
      }

标记

<asp:LinkButton ID="lnkEdit" Text="Customize"  CommandName="edit"  CommandArgument='edit'  runat="server"> 
       </asp:LinkButton>  
于 2013-03-23T07:56:13.390 回答