【问题标题】:Gridview cell value on RowCommandRowCommand 上的 Gridview 单元格值
【发布时间】:2012-04-11 10:59:14
【问题描述】:

我正在尝试从 gridview 获取单元格值,但遇到了一些问题。我已经设置了类似于example 的代码,只是我在服务器端添加了我的按钮字段。由于某种原因,单击单元格值时 RowCommand 会触发两次? TIA 寻求帮助

页面加载为空: code

 protected void Page_Load(object sender, EventArgs e)
{

}

添加按钮字段: code

   foreach (DataColumn col in transposedTable.Columns)
    {

        ButtonField bfield = new ButtonField();



        bfield.DataTextField = col.ColumnName;

        bfield.HeaderText = col.ColumnName;

        bfield.CommandName = "ColumnClick";

        gvTest.Columns.Add(bfield);

    }

RowDataBound 和 RowCommand 事件与上面的示例链接相同

【问题讨论】:

    标签: c# sql gridview


    【解决方案1】:

    好的...MSFT 连接中似乎存在一个未解决的错误... GridView RowCommad Event Firing Twice

    似乎在“变通办法”选项卡中发布了一些变通办法...

    希望这会有所帮助...

    【讨论】:

    • 我使用会话变量来避免重复回发清除我的变量。一个古怪的解决方案,但唯一有效的方法。一如既往,感谢所有帮助!
    【解决方案2】:

    这是一个已知的错误。我遇到了同样的问题。

    我从事件声明背后的代码中删除了句柄GridView.RowCommand,并且 将此行添加到 .aspx 源中网格的属性声明中:

    OnRowCommand="GridView_RowCommand"
    

    完美运行。

    【讨论】:

      【解决方案3】:

      访问网格中行值的一种方法是使用 Cells 集合以及网格的当前索引(您可以通过 eventargs 访问),如下所示

      void YOUR_GRID_EVENT(Object sender, GridViewDeleteEventArgs e) 
      {
          Grid.Rows[e.RowIndex].Cells[0];
      }
      

      你也可以像下面这样使用findcontrol:

      var txtName = e.Row.FindControl("txtName") as TextBox;
      

      希望这会有所帮助...

      更新

      还要检查您的代码以确保您正确调用了 GridView 的 DataBind() 方法...因为每次调用 GridView.DataBind()...网格视图的 rowcommand 事件都会被调用...我认为(猜测)您当前在 onload 以及按钮单击事件中有一个 gridView.DataBind() 。所以这可能会导致 rowcommand 事件被调用两次...如果不是这种情况,那么发布一些代码以便我们可以探索更多...

      【讨论】:

      • 谢谢....我了解如何获取数据,但很好奇为什么事件会被触发两次?
      • @BlakeAdams 哦,如果您碰巧多次调用 grid.DataBind() 代码,就会发生这种情况......所以请确保您没有在页面中调用 grid.DataBind() 方法两次流程...调试是您最好的朋友...
      • 似乎当我单击单元格中的值时会触发两个 RowCommand 事件,当我选择单元格而不是它生成的值时?看起来很奇怪,但我想知道它是否与按钮字段有关?
      • @BlakeAdams 可能您需要发布一些代码(即您的事件代码/加载事件代码)...以便我们查看...
      猜你喜欢
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      • 2011-02-18
      • 1970-01-01
      相关资源
      最近更新 更多