asp.nets webforms と gridview を使用して、Web サイトに大きなデータ テーブルを作成しています。また、グリッドビュー全体をExcelファイルにダウンロードできるようにするコードビハインドの非常に簡単な方法もあります。sqlDataSource で selectCommand を作成すると、これはすべて完全に機能します。私の問題は、コード ビハインドで SelectCommand を作成して、多くのパラメーターを追加し、より動的にすることです。sqlDataSource SelectCommand にもパラメーターを追加できることは知っていますが、コード ビハインドで必要なことを行うのははるかに簡単です。
コード ビハインドで作成された selectCommand は完全に機能し、グリッドビューを表示します。問題は、Excel にダウンロードしようとすると、Excel ファイルが空になることです。つまり、グリッドビューからのデータは引き継がれません。select コマンドを作成する方法と関係があるに違いないと思います... これが私のやり方です。
Aspx ファイル:
<asp:SqlDataSource ID="RegionCompliance" Runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>">
</asp:SqlDataSource>
<%
SetSelectCommand(); // this is where the select command is created
%>
<h2>
Download To:
<asp:LinkButton ID="Button1" runat="server" OnClick="DownloadToExcel" Text="Excel" />
</h2>
<asp:GridView
ID="GridView1"
DataSourceID="RegionCompliance"
DataKeyNames="Region">
<Columns>
<asp:BoundField ReadOnly="true" HeaderText="Region" DataField="Region"></asp:BoundField>
</Columns>
</asp:GridView>
select コマンドが作成されるコード ビハインド
protected void SetSelectCommand()
{
sqlCommand = SELECT region FROM tablename
RegionCompliance.SelectCommand = sqlCommand;
}
sqlDataSource で選択コマンドを作成すると、それ自体が完全に機能します...これにより、Excel ファイルで selectCommand と gridview データの使用が許可されない理由を誰でも理解できますか?