Индекс строки в gridview rowCommand
Просто хочу передать значение переменной переменной:
protected void gvVariableDetail_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Edit")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow gvRow = gvVariableConfig.Rows[index];
int rowIndex = index;
}
}
Но rowindex все еще имеет нулевое значение, а индекс получил значение строки (в этом случае я пытаюсь редактировать строку 2, поэтому значение индекса равно 1 (начало 0)). поэтому надеюсь, что кто-нибудь знает, как передать значение индекса в rowIndex.
Ответы
Ответ 1
Вы можете использовать свойство CommandSource
и передать его NamingContainer
в GridViewRow
. Тогда вы можете использовать его свойство RowIndex
:
GridViewRow gvr = (GridViewRow)((Control)e.CommandSource).NamingContainer;
int rowIndex = gvr.RowIndex;
Если вы хотите использовать CommandArgument
, вы должны установить его из aspx:
CommandArgument='<%# ((GridViewRow) Container).RowIndex %>'
то это также работает:
int RowIndex = int.Parse(e.CommandArgument.ToString());