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

Jim*_*m B 1 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>
Run Code Online (Sandbox Code Playgroud)

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

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

Jim*_*m B 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;
            }
        }
Run Code Online (Sandbox Code Playgroud)

PrepareRadGridForExport片段

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