10

只想将值从变量转移到另一个变量:

 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。

4

1 回答 1

17

您可以使用该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()); 
于 2012-11-08T09:20:58.950 回答