将动态字符串参数放在下拉菜单服务器控件中

时间:2013-06-26 21:14:23

标签: c# asp.net sql-server visual-studio

我是.net / c#和visual studio的新手。我一直在互联网上寻找答案,但找不到它。谢谢你的帮助。

我正在从数据库表中填充下拉列表,我想将动态参数传递给asp服务器控件(登录的人员用户名)。我想把这个动态字符串添加到PUT_LOGGED_IN_USERNAME_HERE“。

<asp:DropDownList ID="DropDownList1" runat="server" 
    DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="PK_Task" AppendDataBoundItems="true">
    <asp:ListItem Selected="True">Supportive</asp:ListItem>
</asp:DropDownList>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ApplicationServices %>" 

    SelectCommand="SELECT [PK_Task], [Name] FROM [Task] WHERE ([PointPerson] LIKE '%' + @PointPerson + '%') AND [Status] LIKE 'Done'">
    <SelectParameters>
        <asp:QueryStringParameter DefaultValue="PUT_LOGGED_IN_USERNAME_HERE" Name="PointPerson" 
            QueryStringField="PUT_LOGGED_IN_USERNAME_HERE"" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

我如何做到这一点?

我找到了显示用户名的代码:

<%= Page.User.Identity.Name %>

然而,当我按照图示使用它时,它无法正常工作:

<asp:QueryStringParameter DefaultValue="<%= Page.User.Identity.Name %>" Name="PointPerson" 
     QueryStringField="<%= Page.User.Identity.Name %>"" Type="String" />

1 个答案:

答案 0 :(得分:1)

您可以访问SqlDataSource的属性,包括后面代码中的参数,如下所示:

SqlDataSource1.SelectParameters["PointPerson"].DefaultValue = "User";