1

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

我正在从数据库表中填充一个下拉列表,我想将一个动态参数传递给 asp 服务器控件(登录的用户名)。我要放置这个动态字符串的 2 个区域我添加了 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" />
4

1 回答 1

1

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

SqlDataSource1.SelectParameters["PointPerson"].DefaultValue = "User";
于 2013-06-26T22:05:10.390 回答