2014-10-16 46 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