只想将值从变量转移到nother变量:
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。
答案 0 :(得分:16)
您可以使用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());