Как получить rowindex в GridView при использовании аргумента OnCommand в поле

#c# #asp.net #gridview

#c# #asp.net #gridview

Вопрос:

 <asp:LinkButton ID="lblViewDetail" runat="server" style="text-decoration:underline;"  OnCommand="ViewSummary" CommandArgument='<%#Eval("ShowlinkDetail") %>' Text='View Detail' />
  

У меня есть один способ в файле .cs, и это имя метода вызывается в поле данных

 OnCommand="ViewSummary"
private void ViewSummary()
{
     //code
}
  

когда я нажимаю в виде таблицы на элемент управления lable, я хочу получить Rowindex.Пожалуйста, помогите.

Ответ №1:

OnCommand для вашего linkbutton будет примерно таким

 protected void lnk_Command(object sender, CommandEventArgs e)
{
   // The Namingcontainer would be Gridrow
   // You can get the rowindex in this fashion
    ((sender as LinkButton).NamingContainer as GridViewRow).RowIndex    
}
  

Ответ №2:

это вернет вашу текущую строку. вам не нужно указывать индекс строки..

 if(e.CommandName == "")
{
GridViewRow row = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer);
}
  

Ответ №3:

Для LinkButton:

 CommandArgument='<%#((GridViewRow)Container).RowIndex%>'
  

в .cs :

 protected void gv_CommDetails_RowCommand(object sender, GridViewCommandEventArgs e)
        {

            try
            {
                int index = Convert.ToInt32(e.CommandArgument); //Here you can get the index.

                if (e.CommandName == "ViewSummary")
                {
                   drp_Comm.Items.FindByValue(((HiddenField)gv_CommDetails.Rows[index].Cells[0].FindControl("hdn_CommCode")).Value).Selected = true;
                   txt_CommDescription.Text =gv_CommDetails.Rows[index].Cells[2].Text;
                }

            }

            catch (Exception ee)
            {
                string message = ee.Message;
            }

        }