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>
GridExporter
<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 オブジェクトでデータを作成します。そして、dataTable をグリッドにバインドします。
grid.DataSource = fakes;
grid.DataBind();
すべてがうまく機能しているように見えますが、エクスポート ボタンをクリックしても何もエクスポートされません。
protected void createFile_Click(object sender, EventArgs e)
{
gridExport.WriteXlsToResponse();
}
DevExpress チュートリアルに従って、選択した行を ASPl にエクスポートしました。しかし、私のページが更新されたように見えるので、エクスポート前にグリッドにバインドされたデータを失います。