【问题标题】:row index in gridview rowCommandgridview rowCommand中的行索引
【发布时间】:2012-11-08 18:23:32
【问题描述】:

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

 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。

【问题讨论】:

  • 你想这样做很酷,但你的问题是什么?
  • 需要获取用于 javascript 的行索引,但我想通过按钮触发这些脚本,而不是通过网格中的命令之一。所以我想将索引值传输到全局变量,以供另一个按钮使用
  • 一个非常好的回答,仍然不包含任何问题。

标签: asp.net


【解决方案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()); 

【讨论】:

  • 收到消息无法将“System.Web.UI.WebControls.ContentPlaceHolder”类型的对象转换为“System.Web.UI.WebControls.GridViewRow”类型。
  • 使用方法 1 先生。我在扩展网格视图中使用控件来触发 RowCommand
  • 我是 asp 的新手,所以我只发布代码... protected void gvVariableDetail_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Edit") { .... ....... } } 使用最后一个解决方案不能这样做,因为将字符串转换为 int
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 1970-01-01
  • 2011-09-24
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多