gridview rowCommand中的行索引

时间:2012-11-08 09:15:49

标签: asp.net

只想将值从变量转移到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。

1 个答案:

答案 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());