RadGrid - 导出到 CSV 不包括模板列

发布于 2024-09-07 04:48:05 字数 931 浏览 5 评论 0原文

所以我在 radgrid 中定义了以下列:

                <telerik:GridTemplateColumn DataField="Payment.Customer.FirstName" DataType="System.String"
                    HeaderText="First Name" SortExpression="Payment.Customer.FirstName" UniqueName="FirstName">
                    <ItemTemplate>
                        <asp:HyperLink ID="hypFirstName" runat="server" Target="_blank" Text='<%# ((PaymentIssue)Container.DataItem).Payment.Customer.FirstName %>'
                            NavigateUrl='<%# string.Format("~/CustomerAdmin/Customer_View.aspx?customerId={0}", ((PaymentIssue)Container.DataItem).Payment.CustomerId) %>'></asp:HyperLink>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>

现在,如果我使用 RadGrid MasterTableView.ExportToExcel() 函数;一切都很好。然而;如果我尝试 MasterTableView.ExportToCSV(),该列为空。

关于可能导致这种情况的原因有什么想法吗?

So I've got the following column defined in my radgrid:

                <telerik:GridTemplateColumn DataField="Payment.Customer.FirstName" DataType="System.String"
                    HeaderText="First Name" SortExpression="Payment.Customer.FirstName" UniqueName="FirstName">
                    <ItemTemplate>
                        <asp:HyperLink ID="hypFirstName" runat="server" Target="_blank" Text='<%# ((PaymentIssue)Container.DataItem).Payment.Customer.FirstName %>'
                            NavigateUrl='<%# string.Format("~/CustomerAdmin/Customer_View.aspx?customerId={0}", ((PaymentIssue)Container.DataItem).Payment.CustomerId) %>'></asp:HyperLink>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>

Now, if I use the RadGrid MasterTableView.ExportToExcel() function; all is well. However; if I try MasterTableView.ExportToCSV(), the column is blank.

Any ideas on what could be causing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

红颜悴 2024-09-14 04:48:05

好的;我明白了这一点。结果我需要在导出之前设置 GridDataItems 上的 Text 属性。

示例代码如下:

导出按钮点击方法

protected void lnkExport_Click(object sender, EventArgs e)
        {
            var linkButton = (LinkButton)sender;
            switch (linkButton.CommandArgument)
            {
                case "Excel":
                    rgPaymentIssues.MasterTableView.ExportToExcel();
                    break;
                case "CSV":
                    PrepareRadGridForExport();
                    rgPaymentIssues.MasterTableView.ExportToCSV();
                    break;
                default:
                    break;
            }
        }

PrepareRadGridForExport 代码段

foreach (GridDataItem gi in rgPaymentIssues.MasterTableView.Items)
            {
                var hypFirstName = (HyperLink) gi.FindControl("hypFirstName");
                gi["FirstName"].Text = hypFirstName.Text;
            }

OK; I figured this out. Turns out I need to set the Text property on the GridDataItems before exporting.

Sample code below:

Export Buttons Click Method

protected void lnkExport_Click(object sender, EventArgs e)
        {
            var linkButton = (LinkButton)sender;
            switch (linkButton.CommandArgument)
            {
                case "Excel":
                    rgPaymentIssues.MasterTableView.ExportToExcel();
                    break;
                case "CSV":
                    PrepareRadGridForExport();
                    rgPaymentIssues.MasterTableView.ExportToCSV();
                    break;
                default:
                    break;
            }
        }

PrepareRadGridForExport snippet

foreach (GridDataItem gi in rgPaymentIssues.MasterTableView.Items)
            {
                var hypFirstName = (HyperLink) gi.FindControl("hypFirstName");
                gi["FirstName"].Text = hypFirstName.Text;
            }
椒妓 2024-09-14 04:48:05

将 ExportOnlyData 设置为“False”可以解决此问题。
详细信息请参阅以下链接。

http://www.telerik.com/help/aspnet-ajax /grid-csv-export.html

Setting ExportOnlyData to 'False' solves this issue.
See the following link for the details.

http://www.telerik.com/help/aspnet-ajax/grid-csv-export.html

朕就是辣么酷 2024-09-14 04:48:05

以防万一有人像我一样到达这里,您可以通过另一种方式解决它,将另一列设置为 Readonly="true",这样它就不会出现在编辑模式下,将原始列设置为 Display="false",这样它就不会出现在编辑模式中。出现在视图模式中,然后导出就一切顺利,摘录如下:

<telerik:GridBoundColumn DataField="Email2" HeaderText="Email" UniqueName="Email2a" ReadOnly="true" Exportable="true" />
<telerik:GridTemplateColumn DataField="Email2" HeaderText="Email" UniqueName="Email2" Display="false" Exportable="false">
    <EditItemTemplate>
        ...
    </EditItemTemplate>
</telerik:GridTemplateColumn>

快乐编码!

Just in case someone arrives here as I did, you could solve it another way, put another column with Readonly="true" so it doesn't appear in editing mode and the original column with Display="false" so it doesn't appear in view mode, then Export is all good, here's the extract:

<telerik:GridBoundColumn DataField="Email2" HeaderText="Email" UniqueName="Email2a" ReadOnly="true" Exportable="true" />
<telerik:GridTemplateColumn DataField="Email2" HeaderText="Email" UniqueName="Email2" Display="false" Exportable="false">
    <EditItemTemplate>
        ...
    </EditItemTemplate>
</telerik:GridTemplateColumn>

Happy coding!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文