2014-09-26 59 views
0

我希望能够将会话值传入我的参数集合中。如何将会话值传递给参数集合?

<asp:ObjectDataSource ID="dataApplications" runat="server" 
    OldValuesParameterFormatString="original_{0}" SelectMethod="GetSubList" 
    TypeName="MApplication"> 
    <SelectParameters> 
     <asp:Parameter Name="UserName" Type="String" DefaultValue="<%= DirectCast(Session("Profile"), PCommon).UserName %>"/> 
     ... 
    </SelectParameters> 
</asp:ObjectDataSource> 

我收到此错误信息:

Error 158 Literal content ('<asp:Parameter Name="UserName" Type="String" DefaultValue="') is not allowed within a 'System.Web.UI.WebControls.ParameterCollection'. C:\TFS\pro\OApp\default.aspx 165 

有没有办法做到这一点?

回答

2

你必须使用asp:sessionparameter例如:

<selectparameters> 
    <asp:sessionparameter name="UserName" sessionfield="Profile" type="String" /> 
</selectparameters> 

使用向导来避免错误。


截图:

enter image description here

+0

感谢。我没有看到这个向导。它如何知道要使用的会话对象? – webdad3 2014-09-26 21:24:11

+1

@ webdad3看到我的编辑,我添加了一个屏幕 – meda 2014-09-26 21:29:59

+1

在代码隐藏,你也可以做: dataApplications.SelectParameters [“用户名”] =默认值DirectCast(会话(“档案”),PCommon).UserName 务必测试会议对象不是首先没有,所以你不访问尝试访问不存在的对象。 – 2014-09-27 01:33:50