【问题标题】:ASP.NET - Use a checkbox to change the results of a SqlDataSourceASP.NET - 使用复选框更改 SqlDataSource 的结果
【发布时间】:2011-02-02 21:09:03
【问题描述】:

我正在使用 Visual Web Developer 2010 Express。这是我第一次尝试创建 .NET 页面。我在显示 GridQuery 结果的页面上有一个 Gridview。这行得通。我在同一页面上有一个复选框控件(cb_Filter),如果选中,应该添加到 GridQuery 的 where 子句(其中 Column5 为 NULL)。如何检查复选框的状态,以便在有或没有“过滤器”的情况下运行查询。

【问题讨论】:

    标签: asp.net parameters checkbox sqldatasource


    【解决方案1】:

    真的取决于您的数据访问权限,如果您在页面上创建了一个数据源,那么您将拥有两个,并且代码将更改您拥有的数据源。如果它使用的是旧的 ado.net,那么您将有两个命令以不同的方法运行以获取 sql 查询,类似的事情也适用于 linq。让我知道你如何绑定到网格,我会给你一个例子。

    【讨论】:

    • 希望我理解您的问题,我使用“ConnectionString”连接到数据库。我没有看到对 ado.net 的任何引用,所以我认为它是前者。
    • @patrick 在任何情况下你都需要一个连接字符串。您是否将数据源控件拖放到表单上?你的代码是什么样的,可以让你的数据进入网格?
    • 好的,所以你有一个数据源控件。您需要创建另一个,一个带有 where 子句,一个没有,然后在复选框更改事件(autopostback to true)后面的代码中给它一点 if (check.Cheked) grid.datasource = datasource1;否则 grid.datasource = 数据源 2
    • 我的GridView叫做GridView1;它的datasourceID = GridQuery1。条件(如果 cb_filter.Checked THEN GridQuery1 ELSE GridQuery2)在哪个部分?
    【解决方案2】:

    如果您希望网格结果动态更改,复选框的自动回发应该为 True。这将导致页面在值更改时重新加载。然后,在您的页面加载例程中,您执行以下操作:

    If cb_filter.Checked Then
       'set the checked datasource or SQL string here
    Else
       'set the unchecked datasource or SQL string here
    End If
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-28
      • 2012-06-19
      • 2015-12-18
      • 2010-10-04
      • 2012-12-05
      • 2016-03-03
      • 2013-11-25
      • 1970-01-01
      相关资源
      最近更新 更多