#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;
}
}