0

Erste Frage ist, Bin ich auf dem richtigen Weg?. Gibt es eine bessere Möglichkeit, es als Parameter übergeben? Wenn ich auf dem richtigen Weg bin, zeige mir bitte wie ich den untenstehenden Fehler beheben kann.Die Übergabe der Windows-Benutzer-ID als Parameter an SQLDataSource gibt die Datenbindungsausnahme

Die folgende Lösung hilft mir nicht mit diesem Problem: HTTPContext.Current.User.Identity.Name not working inside a control?

Mein 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> 

Gibt die folgenden Fehler:

Error Details

Antwort

0

versuchen, diese

public Requests() 
{ 
    this.Init += (_o, _e) => 
    { 
     this.SqlDataSource1.Selecting += (o, e) => 
     { 
      (o as SqlDataSourceView) 
      .SelectParameters["Requestor"].DefaultValue = 
         HttpContext.Current.User.Identity.Name; 
     } 
    } 
} 

oder

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      SqlDataSource1.SelectParameters["Requestor"].DefaultValue = 
          HttpContext.Current.User.Identity.Name; 
     } 
    } 
0

gut .... Es besagt, dass Sie den <% #%> (Databinding-Ausdruck) für dieses Steuerelement nicht verwenden können.

Ich kenne dieses Steuerelement nicht, aber Sie könnten versuchen, den Eigenschaftswert zu Beginn des Seitenlebenszyklus festzulegen.

1

Versuchen Sie, diese ich es nicht überprüfen # to =

<asp:Parameter DefaultValue= "<%= HttpContext.Current.User.Identity.Name.Split('\\')[1] %>" Name="Requestor" /> 
+0

Changin # to =

ersetzen, gibt "null" zurück, wenn # den Wert zurückgibt userid, aber null wenn = – HOY

Verwandte Themen