1

我正在为 ASP 使用 Visual Basic。网

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

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,而不是像我演示的那样动态的。

非常感谢任何帮助

4

2 回答 2

3

您可以尝试替换 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>
于 2013-10-14T08:58:49.250 回答
1

我发现了将gridview绑定到动态会话变量的正确方法,而不涉及后面的代码:。只需使用<SessionParameter>里面的属性<SelectParameter>

<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>
于 2013-10-21T06:30:26.170 回答