0

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 にエクスポートしました。しかし、私のページが更新されたように見えるので、エクスポート前にグリッドにバインドされたデータを失います。

4

2 に答える 2

2

コード ビハインドでデータを ASPXGridView にバインドしていたときに、同様の状況が発生しました。export行の前に、ボタンクリックで再バインドすることで解決できました。

protected void createFile_Click(object sender, EventArgs e)
{
    grid.DataSource = fakes;        
    grid.DataBind();        
    gridExport.WriteXlsToResponse();
}
于 2013-08-28T17:49:18.373 に答える