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

Я работаю над своим веб-приложением с использованием ASP.NET, я попал в ситуацию, когда мне нужно различать ОБНОВЛЕНИЕ и ВСТАВКА в событии обновления 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 и измените текст кнопки на ДОБАВИТЬ в следующем фрагменте кода:

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? Любой рекомендуемый трюк для этого? возможно, что-то вроде добавления HiddenField в качестве флага.

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


person sams5817    schedule 23.03.2013    source источник


Ответы (1)


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

eg.

 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>  
person Ankush Jain    schedule 23.03.2013