2014-10-16 45 views
0

這可能是一個簡單的問題,但它隱藏了我,我有一個變量,我在ASP.NET應用程序的另一個頁面中設置了代碼隱藏會話。假設它是:Session["UserName"],我想將它從頁面後面的代碼傳遞到服務器標記。服務器標籤看起來像這樣:將會話或cookie變量傳遞給ASP.NET中的服務器標記

<asp:SqlDataSource ID="SqlDataSourceDelta" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionStringAlpha %>" SelectCommand="SELECT [ThingTitle], [ThingSynopsis], [ThingCategory], [ThingType], [ThingUserName] FROM [ThingOfSubmissions] WHERE ThingUsername = <%$ Session["UserName"] %>"

我不能使用:<%$ Session["UserName"] %>直接在服務器標籤如上所示,沒有它產生約發作形成服務器標籤錯誤。所以我的問題是,我怎麼能通過這個會話變量或任何其他應用程序變量(非SQL Server變量)到這一點的代碼?

回答

0

我想通了......我在服務器端代碼中設置的值作爲會話參數在實際的頁面不如下:

<asp:SessionParameter 
      Name="UserName" 
      SessionField="UserName" 
      Type="String" /> 

接下來,我用@在頁面服務器標籤代碼中的用戶名,它工作正常。

0

你可以在服務器端代碼中設置屬性?

SqlDataSourceDelta.SelectCommand = string.Format("SELECT [ThingTitle], 
[ThingSynopsis], [ThingCategory], 
[ThingType], [ThingUserName] 
FROM [ThingOfSubmissions] 
WHERE ThingUsername = '{0}'", Session["UserName"]); 
+0

雖然我需要它的數據網格。 – Jason 2014-10-17 02:51:43

+0

你是什麼意思?您也可以在服務器端代碼中設置DataGrid屬性,包括綁定項目。你可以發佈你的完整代碼和標記,這樣我可以看看嗎? – sh1rts 2014-10-22 23:39:14

+0

我能夠用我編寫它的方法修復它。我知道你可以用你發送它的方式完成它。這只是我最初完成它的方式。我正在成倍地學習:) – Jason 2014-10-23 00:52:57