Я использую веб-формы asp.nets и gridview для создания больших таблиц данных на моем веб-сайте. У меня также есть очень простой метод в коде, который позволяет загружать всю сетку в файл Excel. Все это отлично работает, когда я создаю selectCommand в sqlDataSource. Моя проблема в том, что я хочу создать SelectCommand в коде позади, чтобы я мог добавить множество параметров и сделать его намного более динамичным. Я знаю, что вы также можете добавлять параметры в sqlDataSource SelectCommand, но это намного проще сделать для того, что я хочу в коде позади.
Команда selectCommand, созданная в программном коде, отлично работает и отображает сетку. Проблема в том, что когда я пытаюсь скачать в excel, файл excel пуст. Другими словами, данные из gridview не переносятся. Я думаю, это должно быть связано с тем, как я создаю команду выбора ... Вот как я это делаю.
Файл 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>
Код программной части, в котором создается команда выбора
protected void SetSelectCommand()
{
sqlCommand = SELECT region FROM tablename
RegionCompliance.SelectCommand = sqlCommand;
}
Если я построил команду select в sqlDataSource, она сама будет работать отлично ... Может ли кто-нибудь понять, почему это не позволяет файлу excel использовать selectCommand и данные gridview