问题:如何在Telerik网格中显示的列数多于渲染网格中显示的数量?
例如,我只想在屏幕上显示Surname,但在转储到csv时也会想要名字。
我在GridBoundColumns上尝试过visible = false和display = false,但是它们没有出现在csv上。
<telerik:RadGrid ID="grdAuctions" runat="server" AllowAutomaticDeletes="True" AllowAutomaticUpdates="True"
AllowPaging="False" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="odsAuctionSales"
GridLines="None" EnableEmbeddedSkins="False" OnItemDataBound="grdAuctionSales_ItemDataBound">
<ExportSettings HideStructureColumns="true" />
<MasterTableView Width="100%" CommandItemDisplay="Top">
<PagerStyle Mode="NextPrevNumericAndAdvanced" />
<CommandItemSettings ShowAddNewRecordButton="false" ShowRefreshButton="false" ShowExportToCsvButton="true"
ExportToCsvImageUrl="~/Images/excel.jpg" ExportToCsvText="Export to csv" />
</MasterTableView>
<MasterTableView DataKeyNames="Id" DataSourceID="odsAuctionSales" CssClass="listItems"
Width="98%">
<SortExpressions>
<telerik:GridSortExpression FieldName="Name"></telerik:GridSortExpression>
</SortExpressions>
<RowIndicatorColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
<Columns>
<telerik:GridTemplateColumn UniqueName="Edit">
<ItemTemplate>
<asp:HyperLink ID="edit" runat="server" Text="Edit"></asp:HyperLink>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="NameOnTable" HeaderText="Name On Table" SortExpression="NameOnTable"
UniqueName="NameOnTable">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Surname" HeaderText="Surname" SortExpression="Surname"
UniqueName="Surname">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Firstname" HeaderText="Firstname" SortExpression="Firstname"
UniqueName="Firstname">
</telerik:GridBoundColumn>
编辑以下是我的工作原理
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.CommandName == RadGrid.ExportToCsvCommandName)
{
grdAuctions.MasterTableView.GetColumn("Edit").Visible = false;
grdAuctions.MasterTableView.GetColumn("DPSAuthCode").Visible = true;
grdAuctions.MasterTableView.ExportToCSV();
}
}
并在aspx中
OnItemCommand="RadGrid1_ItemCommand"
和
<telerik:GridBoundColumn DataField="DPSAuthCode" HeaderText="DPSAuthCode" Visible="false"
SortExpression="DPSAuthCode" UniqueName="DPSAuthCode">
</telerik:GridBoundColumn>
答案 0 :(得分:3)
在导出调用之前切换Visible或Display属性值应该可以解决问题。有关详细信息,请查看相关部分(隐藏列)here。
答案 1 :(得分:0)
我能给你的最好的想法是让控件显示它,然后使用jquery设置这些列上的显示。
另一种选择可能是将导出重载到csv函数,但是我对这个Telerik控件不够熟悉,无法给出任何指示。