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

时间:2010-06-25 13:09:06

标签: c# export telerik radgrid

所以我在我的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(),则列为空白。

关于可能导致这种情况的任何想法?

3 个答案:

答案 0 :(得分:5)

行;我想通了。事实证明我需要在导出之前在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;
            }

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

以防万一有人像我一样到达这里,您可以用另一种方式解决,在另一列中放置Readonly =“ true”,这样它就不会出现在编辑模式下,而原始列中则是Display =“ false”,这样没有出现在视图模式下,那么Export一切都很好,这是摘录:

.box-layout {
  align-items: center;
  background: url('../../public/images/bg.jpg');
  background-size: cover;
  display: flex;
  height: 100vh;
  justify-content: center;
  width: 100vw;
}

祝您编程愉快!