【问题标题】:Access GridView inside another GridView from code-behind从代码隐藏访问另一个 GridView 中的 GridView
【发布时间】:2012-03-20 07:59:20
【问题描述】:

我在 ascx page 3 GridViews 中创建,比如:

<dxwgv:ASPxGridView ID="grid1" ..... >
    <dxwgv:ASPxGridView ID="grid2" .... >
      <dxwgv:ASPXGridView ID="grid3" ....>
      </dxwgv>
    </dxwgv>
 </dxwgv>

但在代码隐藏中,我只看到第一个网格 (grid1) ID 并且只能控制它。别人怎么用?

【问题讨论】:

  • 其他网格是作为项目模板添加的还是什么?
  • 你想用 grid2 和 grid3 实现什么?他们应该在哪里渲染?
  • 提供您用于在 gridview 中显示 gridview 的实际标记。

标签: c# asp.net .net devexpress aspxgridview


【解决方案1】:

您不会看到其他网格视图,因为它们隐藏在第一个网格视图中,要访问其他网格视图,您应该执行以下操作:

  1. 通过代码创建两个网格视图控件,可以说它们的名称:GVsubone 和 GVsubtwo
  2. 在第一个 gridview(对你可见的那个)的 RowDataBound 中,让你的 GVsubone 像这样处理你的 grid2 的事件grid2.RowDataBound += new EventHandler(GVsubone.RowDataBound);
  3. 然后在 GVsubone RowDataBound 中,您必须执行相同的逻辑来处理网格 2 的事件

附:你可以处理任何事件 RowDataBound 就是一个例子。

【讨论】:

    【解决方案2】:

    我认为

    GridView grid2 = (GridView)grid1.FindControl("grid2")
    GridView grid3 = (GridView)grid2.FindControl("grid3")
    

    应该可以。

    【讨论】:

    • 我认为这不是一个完整的答案:)
    【解决方案3】:

    更好的解决方案是在运行时为控件分配唯一的 ID(和 ClientInstanceNames)以及脚本。 此方法在以下知识库文章中进行了描述:The general technique of using the Init/Load event handler.

    然后另一种方法是处理详细网格的ASPxGridView.DataBound 事件并通过 sender 参数获取对网格的引用。如果你使用Master Details,这里可以调用主网格的ASPxGridView.FindDetailRowTemplateControl方法。

    如果您使用的是 GridView 的 DataRowTemplate,请使用 ASPxGridView.FindRowTemplateControl Method,你只需要得到 行的可见索引,您可以使用 它的名字。

    如果您使用的是 Coloumn 模板,请使用 ASPxGridView.FindRowCellTemplateControl Method

     protected void ASPxGridView1_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e) {
            if(e.DataColumn.FieldName == "title") {
                ASPxTextBox textBox = ASPxGridView1.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "ASPxTextBox1") as ASPxTextBox;
                textBox.Text = Convert.ToString(e.CellValue);
            }
        }
    

    参考这些:
    ASPxGridView - How to access controls inside DetailRow on the client side

    【讨论】:

      猜你喜欢
      • 2011-09-17
      • 2014-09-09
      • 2013-11-20
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      相关资源
      最近更新 更多