【问题标题】:Referencing nested control引用嵌套控件
【发布时间】:2014-02-18 19:20:40
【问题描述】:

我有两个网格视图 - 一个嵌套在另一个中 - 我正在尝试以编程方式设置子网格的数据源,但不知道如何引用它。

<telerik:RadGrid ID="RadGridResults" runat="server" AutoGenerateColumns="true" OnNeedDataSource="RadGridResults_NeedDataSource">
    <MasterTableView>
        <NestedViewTemplate>
            <telerik:RadGrid ID="RadGridDetails" runat="server" AutoGenerateColumns="true">
            </telerik:RadGrid>
        </NestedViewTemplate>
    </MasterTableView>
</telerik:RadGrid>

我试过这个:

RadGrid radGridDetails = RadGridResults.FindControl("RadGridDetails") as RadGrid;
radGridDetails.DataSource = myList.ToList();

但这会返回 NullReferenceException。

谁能告诉我如何做到这一点?

【问题讨论】:

    标签: c# asp.net gridview telerik nested


    【解决方案1】:

    直接对集合进行数据绑定即可:

    <telerik:RadGrid ID="RadGridDetails" runat="server" AutoGenerateColumns="true"
        DataSource='<%# Eval("myList") %>'>
    </telerik:RadGrid>
    

    【讨论】:

      【解决方案2】:

      通过获取网格的GridNestedViewItem,您可以在NestedViewTemplate 中找到任何控件。以下是您以编程方式引用子网格的方式:

      var radGridDetails = 
          ((RadGridResults.MasterTableView.Items[0].ChildItem as GridNestedViewItem)
          .FindControl("RadGridDetails") as RadGrid);
      

      我仍然会像 @Servy 演示的那样对网格进行数据绑定,但是对于像您要求的那样引用网格,上面的代码应该可以工作。

      【讨论】:

        【解决方案3】:
        object dataKeyValue = ((source as RadGrid).NamingContainer as DataItem).GetDataKeyValue("ID"); 
        

        //使用dataKeyValue获取正确的Employee对象

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-16
          • 2011-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-12
          • 2015-09-22
          相关资源
          最近更新 更多