【问题标题】:Remove parameter on page with gridview connected to dropdown selection删除页面上的参数,gridview 连接到下拉选择
【发布时间】:2012-05-23 11:25:17
【问题描述】:

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

有没有办法(在 ASP.NET 中)我可以在下拉列表中有一个“显示全部”项,该项将从数据源中删除参数,以便无论类别如何,它都会拉入所有项?或者这是不可能的,我需要将其中一些切换到代码隐藏。

【问题讨论】:

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


    【解决方案1】:

    取决于Category:

    A) 如果Category 是varchar 类型,那么您应该能够将SelectSqlDataSource 修改为:

    ... WHERE Category LIKE @Category
    

    并在您的DropDownList 中包含一个项目:

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

    B) 如果Category 是数字类型,那么您应该能够修改您的Select 以检查“幻数”(您通过业务规则保留的表示通配符的数字 - 和确保在某处记录):

    ... WHERE Category = @Category OR @Category = -99
    

    并在您的DropDownList 中包含一个项目:

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

    【讨论】:

      【解决方案2】:

      你可以这样做

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

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

      在您的选择语句的过滤器表达式中,您需要编写类似

      Convert(Category,System.String) like '{0}%'
      

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

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

      <asp:ListItem Text="(Any)" Value="%"></asp:ListItem>
      
      Category like '{0}%'
      

      如果这对你有帮助,请告诉我。

      【讨论】:

        猜你喜欢
        • 2021-06-10
        • 2016-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-12
        • 1970-01-01
        • 2020-08-15
        • 2014-02-28
        相关资源
        最近更新 更多