【问题标题】:How can I bind a gridview to datasource with dynamic WHERE clause?如何使用动态 WHERE 子句将网格视图绑定到数据源?
【发布时间】:2013-10-21 18:40:29
【问题描述】:

我正在使用 Visual Basic for ASP。网络

我知道如何只使用后面的代码用数据填充网格视图,就像这样

Dim ds as new datasourse
Dim da as new dataadaptor
Dim con as new SqlConnection
Dim cmd as new SqlCommand
... 
Cmd = "select ticketID, problem_text from problems where support_engineer = " & Session("Logged_in_user_id")
... 
Gridview1.Datasource = ds
Gridview1.Datasources. DataBind

这很好用,但我的问题是:如何拖放 gridview 控件,并在设计时仅使用向导填充 gridview,如何定义 SELECT 语句以仅选择相关的行到登录的用户ID?请参阅上面的 sql 语句,它使用了我在 Page_Load 事件中创建的会话变量,但我如何在设计模式下使用相同的逻辑? (我不想在后面的代码中修改数据源控件)

我查看了 youtube 和 google,以及这个网站,但所有结果都只是向我展示了如何使用所有行或静态条件填充 gridview,而不是像我演示的那样动态填充。

非常感谢任何帮助

【问题讨论】:

    标签: asp.net sql vb.net gridview datasource


    【解决方案1】:

    您可以尝试替换 aspx 文件中的表单标签

    <form id="form1" runat="server">
    <div>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:TestConnectionString %>" 
            SelectCommand="SELECT ticketID, problem_text FROM Tabs WHERE (support_engineer = @Param1)">
            <SelectParameters>
                <asp:SessionParameter Name="Param1" SessionField="Logged_in_user_id" />
            </SelectParameters>
        </asp:SqlDataSource>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="True" 
             DataSourceID="SqlDataSource1">
        </asp:GridView>
    </div>
    </form>
    

    【讨论】:

    • 谢谢,但这是我得到的:属性“SessionField”不是元素“参数”的有效属性
    【解决方案2】:

    我找到了将 gridview 绑定到动态会话变量的正确方法,而不涉及后面的代码:。只需在&lt;SelectParameter&gt; 中使用属性&lt;SessionParameter&gt;

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:TestConnectionString %>" 
    
    SelectCommand="SELECT ticketID, problem_text FROM problems 
                   WHERE (support_engineer = @eng_id) 
    
    <SelectParameters>
             <asp:SessionParameter 
                  Name="eng_id" 
                  SessionField="LoggedInUser" 
                  Type="String" />
    </SelectParameters>
    </asp:SqlDataSource>
    
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="True" 
             DataSourceID="SqlDataSource1">
    </asp:GridView>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 2011-01-01
      • 1970-01-01
      • 2017-02-16
      相关资源
      最近更新 更多