簡體   English   中英

從CodeBehind綁定嵌套RadGrid中的內部網格

[英]Bind Inner Grid in Nested RadGrid from CodeBehind

嗨,我正在使用radgrid上的嵌套功能。 如何在OnItemDataBound事件中引用和綁定嵌套在父Radgrid中的rad網格。

我努力了

   var doc_grid = (RadGrid) item["doc_grid"].Controls[0];
   var doc_grid = (RadGrid)RadGrid1.FindControl("doc_grid");

我是否必須參考NestView ...

以下是代碼的一般要點......

   <telerik:RadGrid ID="outerGrid" DataSourceID="SQL_Outer" runat="server" AutoGenerateColumns="True" OnItemDataBound="RowBound" DataKeyNames="MatNo"
        ShowGroupPanel="True">
        <MasterTableView DataSourceID="SQL_Outer" AllowMultiColumnSorting="True" DataKeyNames="MatNo" GroupLoadMode="Server">
            <Columns>
               <%--Stuff--%>
            </Columns>
            <NestedViewSettings DataSourceID="SqlDataSource2">
                <ParentTableRelation>
                    <telerik:GridRelationFields DetailKeyField="sysid" MasterKeyField="MatNo" />
                </ParentTableRelation>
            </NestedViewSettings>
            <NestedViewTemplate>

            <asp:Panel ID="NestedViewPanel" runat="server" CssClass="viewWrap">
               <div class="contactWrap">
                <telerik:RadGrid ID="doc_grid" runat="server">
                    <MasterTableView AutoGenerateColumns="False" DataKeyNames="sysid">
                      <%--Stuff--%>
                    </MasterTableView>
                </telerik:RadGrid>
                </div>
            </asp:Panel>

            </NestedViewTemplate>
        </MasterTableView>
    </telerik:RadGrid>

代碼隱藏:

protected void RowBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridDataItem)
    {
        var item = (GridDataItem)e.Item;
        var mat_no = item.GetDataKeyValue("MatNo");

        //!!!!I Can't figure out how to Reference the Inner RadGrid!!!!
        //var doc_grid = (RadGrid) item["doc_grid"].Controls[0];
        var doc_grid = (RadGrid)RadGrid1.FindControl("doc_grid");

        using (var con = new SqlConnection())
        {
            con.ConnectionString = ConfigurationManager.ConnectionStrings["TimeMatters11ConnectionString"].ConnectionString;
            var cmd = new SqlCommand("SELECT sysid, ccode, [desc], [View] = '<a href=\"'+ filename + '\">View Doc</a>' " +
                                     "FROM lntmu11.document " +
                                     "WHERE mat_no = @matno", con);
            cmd.Parameters.AddWithValue("@matno", mat_no); 
            con.Open();
            var reader = cmd.ExecuteReader();
            doc_grid.DataSource = reader;
            doc_grid.DataBind();
            con.Close();
        }
    }  

提前致謝 ...

您需要轉換為GridNestedViewItem而不是GridDataItem。

protected void RowBound(object sender, GridItemEventArgs e)
{
   if (e.Item is GridNestedViewItem)
   {
      GridNestedViewItem item = e.Item as GridNestedViewItem;
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM