我正在使用 asp.nets webforms 和 gridview 在我的网站上创建大型数据表。我在后面的代码中还有一个非常简单的方法,它允许整个 gridview 下载到一个 excel 文件。当我在 sqlDataSource 中创建 selectCommand 时,这一切都完美无缺。我的问题是我想在后面的代码中创建一个 SelectCommand,这样我就可以添加很多参数并使其更加动态。我知道您也可以在 sqlDataSource SelectCommand 中添加参数,但这对于我想要在后面的代码中执行的操作要简单得多。
在后面的代码中创建的 selectCommand 可以完美运行并显示 gridview。问题是当我尝试下载到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;
}
如果我在 sqlDataSource 中构建了 select 命令,它将完美地工作......谁能明白为什么这不允许 excel 文件使用 selectCommand 和 gridview 数据