First question is, Am I on the right path?.ıs there a better way to pass it as parameter? If I am on the right path, please show me how can I solve the below error.
The following solution does not help me with this problem: HTTPContext.Current.User.Identity.Name not working inside a control?
My code:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MyDbConn %>"
SelectCommand="SELECT id, Bookname, RequestType, Requestor, RequestDate FROM Requests WHERE (Requestor LIKE '%' + @Requestor + '%')">
<SelectParameters>
<asp:Parameter DefaultValue= "<%# HttpContext.Current.User.Identity.Name.Split('\\')[1] %>" Name="Requestor" />
</SelectParameters>
</asp:SqlDataSource>
Gives the below error:
try this
public Requests()
{
this.Init += (_o, _e) =>
{
this.SqlDataSource1.Selecting += (o, e) =>
{
(o as SqlDataSourceView)
.SelectParameters["Requestor"].DefaultValue =
HttpContext.Current.User.Identity.Name;
}
}
}
or
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SqlDataSource1.SelectParameters["Requestor"].DefaultValue =
HttpContext.Current.User.Identity.Name;
}
}