我正在 VS 2010 中构建一个数据库驱动的 Web 应用程序,我有一个页面在 GridView 中显示我的数据。我希望能够根据“类型”(我的一个专栏的名称)过滤结果。
我添加了一个 ListBox,其条目是通过我的数据库中的 EntityDataSource 填充的,并且我同时设置了 AutoPostBack 和 SelectionMode on Multiple。然后,我的 GridView 使用以下代码来填充:
<asp:EntityDataSource ID="EntityDataSource2" runat="server"
AutoGenerateWhereClause="True" ConnectionString="name=ABCCandidatesEntities"
DefaultContainerName="ABCCandidatesEntities" EnableFlattening="False"
EntitySetName="Candidates" EntityTypeFilter="Candidate" Where="">
<WhereParameters>
<asp:ControlParameter ControlID="ListBox1" Name="Type"
PropertyName="SelectedValue" />
</WhereParameters>
</asp:EntityDataSource>
如果列表框中只有 一个 项目被选中,这会很好地工作,但如果 多个 被选中,它就不起作用 -- 它只是将其视为单个选择。我怎样才能让它发挥作用?
在站点说明中,是否有更简单的方法来设置 GridView 的过滤?
谢谢!
最佳答案
如果您查看智能,它会显示 .SelectedValue
返回一个字符串。
.GetSelectedIndices()
是唯一返回我能看到的所有选定值的成员,但是因为它是一种方法而不是属性,所以不确定您应该如何绑定(bind)到它。
据我所知,这是列表框的限制。要获得您正在寻找的功能,您需要编写一些代码隐藏和/或 javascript 来提取查询的值。
关于asp.net - 使用 ListBox 在 Visual Studio 2010 中过滤网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456175/