0

嗨,我有一个使用 Telerik RadGrid 的 DNN 应用程序。我们正在从 Grid 中导出一些数据,但是当我们深入研究网格控件并导出数据时,我们只能看到初始顶级数据,而不是更新后的 Grid。这是我的表格标签和支持代码。我不是 ASPX/C# 方面的专家,所以请原谅我的新手。

<mastertableview autogeneratecolumns="False" datakeynames="AccountId" datasourceid="SqlDataSource1"
    groupsdefaultexpanded="False">

    <DetailTables>
        <telerik:GridTableView runat="server" DataKeyNames="StatementId" DataSourceID="SqlDataSource2"
            Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False"
            Font-Underline="False" >
            <DetailTables>
                <telerik:GridTableView runat="server" DataSourceID="SqlDataSource3" Font-Bold="False"
                    Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False"
                    GroupsDefaultExpanded="False" ShowFooter="True" ShowGroupFooter="True" AllowMultiColumnSorting="True"
                    GridLines="None">
                    <ParentTableRelation>
                        <telerik:GridRelationFields DetailKeyField="StatementId" MasterKeyField="StatementId" />
                    </ParentTableRelation>

                    <AlternatingItemStyle BackColor="White" Font-Bold="False" Font-Italic="False" Font-Overline="False"
                        Font-Strikeout="False" Font-Underline="False" Wrap="True" />
                    <HeaderStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False"
                        Font-Underline="False" Wrap="True" />
                    <FooterStyle BackColor="Yellow" Font-Bold="False" Font-Italic="False" Font-Overline="False"
                        Font-Strikeout="False" Font-Underline="False" Wrap="True" />
                </telerik:GridTableView>
            </DetailTables>
            <ParentTableRelation>
                <telerik:GridRelationFields DetailKeyField="AccountId" MasterKeyField="AccountId" />
            </ParentTableRelation>
            <CommandItemSettings ExportToPdfText="Export to Pdf" />
            <ExpandCollapseColumn Visible="True">
            </ExpandCollapseColumn>
        </telerik:GridTableView>
    </DetailTables>
    <ParentTableRelation>
        <telerik:GridRelationFields DetailKeyField="AccountId" MasterKeyField="AccountId" />
    </ParentTableRelation>

    <ExpandCollapseColumn Visible="True">
    </ExpandCollapseColumn>
    <Columns>
        <telerik:GridBoundColumn DataField="ACCOUNTID" DataType="System.Int32" HeaderText="ACCOUNTID"
            SortExpression="ACCOUNTID" UniqueName="ACCOUNTID">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="ACCOUNTREF" HeaderText="ACCOUNTREF" SortExpression="ACCOUNTREF"
            UniqueName="ACCOUNTREF">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="CUSTOMERID" DataType="System.Int32" HeaderText="CUSTOMERID"
            SortExpression="CUSTOMERID" UniqueName="CUSTOMERID">
        </telerik:GridBoundColumn>
    </Columns>
</mastertableview>

导出在加载时向脚本管理器注册:

protected void Page_Load(object sender, EventArgs e)
{
    Button2.Enabled = Session[UserSelection.SelectedValue] != null ? true : false;
    ScriptManager.GetCurrent(Page).RegisterPostBackControl(Button3); 
    ScriptManager.GetCurrent(Page).RegisterPostBackControl(Button4); 
}

我用以下内容调用导出:

protected void Button3_Click(object sender, System.EventArgs e)
    {
        //ConfigureExport();
       RadGrid1.Rebind();
       RadGrid1.ExportSettings.FileName = "RadGridExportToExcel";
       RadGrid1.ExportSettings.ExportOnlyData = true;
       RadGrid1.ExportSettings.OpenInNewWindow = true;

        RadGrid1.MasterTableView.ExportToExcel();
    }

除了 DNN/ASPX 经验和生存意愿之外,谁能看到我所缺少的东西:)

4

1 回答 1

0

已解决:但不完全...通过添加以下内容

RadGrid1.MasterTableView.HierarchyDefaultExpanded = true;

到 button_click 事件,例如:

protected void Button3_Click(object sender, System.EventArgs e)
    {
        //ConfigureExport();
       RadGrid1.Rebind();
       RadGrid1.MasterTableView.HierarchyDefaultExpanded = true;
       RadGrid1.ExportSettings.FileName = "RadGridExportToExcel";
       RadGrid1.ExportSettings.IgnorePaging = true;
       RadGrid1.ExportSettings.ExportOnlyData = true;
       RadGrid1.ExportSettings.OpenInNewWindow = true;

        RadGrid1.MasterTableView.ExportToExcel();
    }

虽然这只是给出了第一级分组,没有子组。此外,它不仅导出您选择的向下钻取数据,而且只是将整个网格的扩展视图导出到第一级......最后,要让第三级详细信息表正常工作,您可以添加

RadGrid1.MasterTableView.DetailTables[0].HierarchyDefaultExpanded = true;

这对我来说在 DNN 中引发了 OOM 错误:

A critical error has occurred.
Exception of type 'System.OutOfMemoryException' was thrown.

我猜您必须进行某种事件处理并在模式窗口中手动打开数据并将其导出。

于 2011-01-06T12:27:45.743 回答