2014-09-26 3 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

+1

@ webdad3 видеть мое редактирование, я добавил экран – meda

+1

В коде вы можете сделать:. dataApplications.SelectParameters [ "UserName"] = DefaultValue DirectCast (Session ("Профиль"), PCommon) .UserName Всегда проверяйте сессию object for is not Nothing First, поэтому вы не получаете доступ к объекту, который не существует. –

Смежные вопросы