我需要将 DevExpress GridView 的选定行导出到 XLS。当我尝试导出我的网格时,它会创建一个空文件。我认为这是由于回调在导出之前清除了我的网格中的数据。
这是我的 ASPx 页面的示例。
加载数据按钮
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Styles/Images/load.png" onclick="ImageButton1_Click" />
网格视图
<dx:ASPxGridView ID="grid" ClientInstanceName="grid" runat="server" AutoGenerateColumns="False" KeyFieldName="car">
<Columns>
<dx:GridViewCommandColumn ShowSelectCheckbox="True" VisibleIndex="0" Caption="">
</dx:GridViewCommandColumn>
<dx:GridViewDataTextColumn Caption="Category" VisibleIndex="1" FieldName="category"
Name="category" GroupIndex="0" SortIndex="0" SortOrder="Ascending">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="Car" VisibleIndex="2" FieldName="car" Name="car">
</dx:GridViewDataTextColumn>
</Columns>
<SettingsPager PageSize="100">
</SettingsPager>
<Settings ShowFooter="True" />
<GroupSummary>
<dx:ASPxSummaryItem FieldName="car" SummaryType="Count" />
</GroupSummary>
</dx:ASPxGridView>
网格导出器
<dx:ASPxGridViewExporter ID="gridExport" runat="server" GridViewID="grid" ExportedRowType="Selected" />
创建文件按钮
<dx:ASPxButton ID="createFile" runat="server" Text="Create File" UseSubmitBehavior="False" OnClick="createFile_Click">
<Image Url="~/Styles/Images/save.png">
</Image>
</dx:ASPxButton>
现在是后面的代码。
当我单击加载按钮时,我会为我的测试创建假数据。
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
CreateFakeData();
}
我在 DataTable 对象中创建我的数据。然后我将我的数据表与我的网格绑定。
grid.DataSource = fakes;
grid.DataBind();
一切似乎都很好,但是当我单击导出按钮时,什么都没有导出。
protected void createFile_Click(object sender, EventArgs e)
{
gridExport.WriteXlsToResponse();
}
我按照DevExpress 教程导出 ASPl 中的选定行。但似乎我的页面已刷新,因此我在导出之前松开了与网格绑定的数据。