【发布时间】:2016-04-13 16:04:13
【问题描述】:
我有一个需要使用 4 个 DropDownLists 过滤的 Gridview (GridView1) 现在我只尝试通过前两个选择进行过滤。
Ddl供应商 DdlStore
我通过使用 SQL 查询来完成它
string query = "Select DISTINCT *, dbo.getsource(version, store_account) as source " +
" FROM TABLENAME " +
" WHERE (name=@name or @name = '') " +
" and (store_name=@Sname or @Sname = '') " +
" and canceled = 0 " +
" and (trans_date between @start and @end) and User_id not in (45493,43020,45491) and internal_use = 0 " +
" order by " + sort + " ";
如果您想知道所有额外的恶作剧是什么,过滤器当前会删除我们发送的所有测试订单。
using (SqlCommand cmd = new SqlCommand(query))
{
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
cmd.Connection = con;
using (DataTable dt = new DataTable())
{
cmd.Parameters.AddWithValue("@name", DdlVendor.SelectedIndex > 0 ? DdlVendor.SelectedValue : "");
cmd.Parameters.AddWithValue("@Sname", DdlStore.SelectedIndex > 0 ? DdlStore.SelectedValue : "");
cmd.Parameters.AddWithValue("@start", start);
cmd.Parameters.AddWithValue("@end", end);
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
@Name 和@Sname 是我用于前两个下拉列表的内容。问题是当我完成选择我的值并应用它们时,GridView 变为空白且没有错误。
目标是通过在每个下拉列表中选择的值过滤您在网格视图中看到的内容。
我会尽我所能澄清您的任何问题。
这是我的下拉列表之一
<asp:DropDownList ID="DdlVendor" AppendDataBoundItems="True" runat="server" CssClass="form-control ftxt" PropertyName="SelectedValue" DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="Dist_num" AutoPostBack="True">
<asp:ListItem Text="ALL" Value=""/>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DATABASE %>" SelectCommand="SELECT DISTINCT [Name], [Dist_num] FROM [VIEWNAME]"></asp:SqlDataSource>
这是我的 GridView 以 Boundfield 为例
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" Width="100%" CssClass="main-table" AutoGenerateColumns="False">
<asp:BoundField DataField="Name" HeaderText="Vendor" ItemStyle-Width="80px" SortExpression="Name" />
【问题讨论】:
-
当 GridView 重新绑定为空时,通常意味着选择失败。您是否使用强制输入测试了 select 语句?即在 SSMS 中使用声明和设置的变量运行它?
-
我没有想到这一点。我通常无权访问表和视图。我只使用给我的东西。我可以试一试。
标签: c# sql asp.net gridview webforms