如何在ASP.NET中使用User.Identity.Name作为SqlDataSource的参数?

Wod*_*dzu 10 c# asp.net sqldatasource parameter-passing

对于SqlDataSource,我可以为传入参数配置外部源.例如,它可能是QueryString,Session,Profile等.但是我没有选择使用User作为源.

我知道我可以在插入,选择,更新,删除事件中为参数提供值.但我认为这不是一个优雅的解决方案,因为我已经在aspx文件中定义了一些参数.我不希望在两个单独的地方定义参数.它弄得一团糟.

那么我可以在.aspx文件中以某种方式定义此参数吗?

    <SelectParameters>
        <asp:QueryStringParameter DefaultValue="-1" Name="ID" 
            QueryStringField="ID" />
        //User.Identity.Name goes here as a value for another parameter  
    </SelectParameters> 
Run Code Online (Sandbox Code Playgroud)

Jan*_*oom 14

.aspx在你的代码隐藏中声明它并填写它:

ASPX

<asp:Parameter Name="username" Type="String" DefaultValue="Anonymous" />
Run Code Online (Sandbox Code Playgroud)

代码隐藏

protected void Page_Init(object sender, EventArgs e) {
    DataSource.SelectParameters["username"].DefaultValue = User.Identity.Name;
}
Run Code Online (Sandbox Code Playgroud)

  • 遗憾的是,<%#User.Identity.Name%>不起作用,因为参数不支持DataBinding ... (2认同)