删除页面上的参数,并将gridview连接到下拉列表选项

时间:2012-05-15 21:56:53

标签: asp.net gridview .net-4.0 drop-down-menu

我有一个简单的ASP.NET / C#页面,其中包含DropDownList(“Category”)和GridView(“Items”)。每个通过SqlDataSource从各自的表中提取数据。 “Items”数据源具有Select语句的ControlParameter,下拉列表会自动回发。一切正常 - 我可以在下拉列表中选择一个项目,gridview会自动改变,就像我期望的那样。

有没有办法(在ASP.NET中)我可以在下拉列表中有一个“show all”项目,它将从数据源中删除参数,以便它将拉入所有项目而不管Category?或者这是不可能的,我需要将其中的一些切换到代码隐藏。

2 个答案:

答案 0 :(得分:0)

取决于Category

A)如果Category是varchar类型,那么您应该能够将Select的{​​{1}}修改为:

SqlDataSource

并在... WHERE Category LIKE @Category 项中加入:

DropDownList

B)如果<asp:ListItem Text="(Any)" Value="%"></asp:ListItem> 是数字类型,那么您应该可以修改Category以检查&#34;幻数&#34; (您通过业务规则保留的数字表示通配符 - 并确保在某处记录):

Select

并在... WHERE Category = @Category OR @Category = -99 项中加入:

DropDownList

答案 1 :(得分:0)

你可以做这样的事情

如果类别是数字(数据值字段),那么您可以按照以下步骤操作...添加新项目

<asp:ListItem Text="(Any)" Value="%"></asp:ListItem>

在你的select语句的filterexpression中,你需要编写像

这样的东西
Convert(Category,System.String) like '{0}%'

这会将您的数字列更改为String类型,并且您的过滤器表达式将传递正确的参数

如果是String类型,则不需要使用Convert函数。

<asp:ListItem Text="(Any)" Value="%"></asp:ListItem>

Category like '{0}%'

请告诉我这是否对您有所帮助。