Как отличить обновление или вставку в GridView OnUpdating Event?

Я работаю над своим веб-приложением с использованием ASP.NET, я попал в ситуацию, когда мне нужно различать UPDATIng и INSERTING в событии обновления GridView.

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

У меня есть ItemTemplate и EditItemTemplate в GridView, когда я нажимаю кнопку "Изменить" (на ItemTemplate), затем меняю кнопку "Обновить" (на EditItemTemplate).

И у меня есть кнопка "Добавить" вне GridView, после нажатия которой я добавляю новую строку в GridView и меняю текст кнопки на ADD в виде следующего фрагмента кода:

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 для вставки строк, но в моей ситуации я использовал Button вне GridView вместо добавления новой строки редактирования.

Итак, как я могу дифференцировать редактирование или вставку в RowUpdating Event? Любой рекомендуемый трюк для достижения этой цели? возможно что-то вроде добавления HiddenField в качестве флага.

Заранее благодарю.

1 ответ

Вы можете идентифицировать событие на основе этого значения имени команды

например.

 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>  
Другие вопросы по тегам