C# 如何基于“全部”、“类别”筛选表达式?
我正在使用AccessDataSource连接到access数据库以获取课程列表。我主要依赖于预构建的控件-GridViewC# 如何基于“全部”、“类别”筛选表达式?,c#,C#,我正在使用AccessDataSource连接到access数据库以获取课程列表。我主要依赖于预构建的控件-GridView <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="AccessDataSource1" EmptyDataText="There are no data records to display."> &
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="AccessDataSource1" EmptyDataText="There are no data records to display.">
<Columns>
<asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
<asp:BoundField DataField="category" HeaderText="category" SortExpression="category" />
</Columns>
</asp:GridView>
我的问题是我想通过下拉列表根据类别过滤数据。但是,下拉列表不显示非清晰
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="AccessDataSource1" DataTextField="category" DataValueField="category">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="C:\Users\x\Documents\Visual Studio 2013\WebSites\WebSite2\courses.mdb" SelectCommand="SELECT [title], [category] FROM [mainclasslist]"></asp:AccessDataSource>
我需要能够创建一个显示以下内容的视图:
表类别1
- 课程1
- 课程2
- 课程1
我应该使用2个数据源吗?gridview应该根据下拉列表进行过滤。但在初始加载时,我需要所有课程都可见。您的类别是否在单独的查找表中?看看ControlParameters。不,我是从同一个表中提取它们。如果我只是创建另一个access数据源,这是一种不好的做法吗?如果我添加一个带有where子句的controlparameter,我如何才能返回所有结果?好吧,没有非规范化数据那么糟糕:)您可以使用一个选择不同类别来创建下拉源,然后在网格上设置一个控制参数。您可能需要在下拉列表中添加一个空项,然后添加AppendDataBoundItems=“true”。