Ссылка на int из codebehind в разметке (.Net) - PullRequest
0 голосов
/ 23 марта 2011

У меня есть aspx-Page с int в Codebehind:

private const int id = 11;

И в разметке у меня есть

<asp:SqlDataSource ID="SqlDataSource" runat="server" 
 SelectCommand="SELECT Name FROM [StatusOption] WHERE StatusId = 11">

Я хотел бы сослаться наid из codebehind в разметке, так что мне нужно только изменить его в codebehind при необходимости.Это возможно и как.

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Вы можете просто установить желаемое значение в событии SqlDataSource.Selecting.

Я добавил новый параметр select в ваш источник данных - statusId и установил его значение в обработчике событий SqlDataSource_Selecting:

<asp:SqlDataSource ID="SqlDataSource" runat="server" 
    SelectCommand="SELECT Name FROM [StatusOption] WHERE StatusId = @statusId"
    OnSelecting="SqlDataSource_Selecting">
    <SelectParameters>
        <asp:Parameter Name="statusId" Type="Int32" />
    </SelectParameters>

, а затем в коде позади:

protected void SqlDataSource_Selecting(
    object sender, 
    SqlDataSourceSelectingEventArgs e)
{
    e.Command.Parameters["@statusId"].Value = id;
}
1 голос
/ 23 марта 2011

Один из подходов состоит в том, чтобы установить вашу SelectCommand программно, используя значение из id, и этот вопрос касается: sqldatasource-set-selectcommand-dynamicly .

Другой похожий способ сделать это обсуждается в этом сообщении на форуме программно изменить выражение выбора sqldatasource .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...