我正在使用Visual Basic for ASP。 NET
我知道如何仅使用后面的代码来填充数据的gridview,比如
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和谷歌,以及这些网站,但所有结果只是向我展示了如何使用所有行或静态条件填充gridview,而不是像我所说的那样动态的那个。
非常感谢任何帮助
答案 0 :(得分: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>
答案 1 :(得分: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>