i正在使用vs 2013开发Web表单应用程序。在" myreports.aspx"中,我希望用户仅查看他/她发出的报告。在sqldatasource selectParameters中,我定义了USERID参数,然后在CodeBehind中传递USERID。但是,我该如何直接在ASPX中进行?
我尝试添加Microsoft.aspnet.Identity名称空间槽
<%@ Import Namespace="Microsoft.AspNet.Identity" %>
然后设置参数,例如:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT * FROM [ReportsByIssuingUserView] WHERE ([UserID]=@UserID)">
<SelectParameters>
<asp:Parameter Name="UserID" Type="String" DefaultValue="<%: Context.User.Identity.GetUserId() %>"/>
</SelectParameters>
</asp:SqlDataSource>
没有运气...
我的代码现在是以下内容,并且运行良好:
aspx:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT * FROM [ReportsByIssuingUserView] WHERE ([UserID]=@UserID)">
<SelectParameters>
<asp:Parameter Name="UserID" Type="String"/>
</SelectParameters>
</asp:SqlDataSource>
cs:
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.SelectParameters["UserID"].DefaultValue = Context.User.Identity.GetUserId();
}
有没有使用CodeBehind的任何方法?
谢谢!
在您的aspx页面中使用 <%= Context.User.Identity.GetUserId() %>
表达语法内联。