Сокращение ASP.net в TextBox

Я пытаюсь сделать следующее:

<asp:TextBox ID="txtName" runat="server" Text="<%= Name %>" />

Когда я запускаю свою страницу, она выводит как ‹%= Name %> вместо фактического выполнения response.write.

Я попытался изменить его, чтобы вместо этого использовать ‹% Response.Write(Name) %>, но он сделал то же самое, поместив вместо этого текст.

Я могу сделать это просто отлично:

<input type="text" value="<%= Name %>" />

Это действительно сработает. Почему это не работает, когда я использую элемент управления TextBox? Есть ли другой способ, которым я должен это сделать?


person Dismissile    schedule 01.06.2011    source источник
comment
На самом деле лучший подход состоит в том, чтобы использовать присваивание значения кода программной части. Есть ли причина, по которой вы не можете сделать это здесь? txtName.Text = Имя;   -  person Raelshark    schedule 01.06.2011
comment
Я должен установить 100 различных вещей. Я не считаю, что программный код — лучший подход. Я действительно использую это для того, чтобы получить уникальное имя группы проверки для пользовательского элемента управления, у которого есть группа проверки, с помощью идентификатора клиента.   -  person Dismissile    schedule 01.06.2011
comment
Попался. В таком случае да, у города был ответ.   -  person Raelshark    schedule 02.06.2011


Ответы (2)


Либо используйте код позади:

txtName.Text = Name;

Или добавьте Page.DataBind() в свой код и измените синтаксис вашего элемента управления на:

<asp:TextBox ID="txtName" runat="server" Text="<%# Name %>" />

Обратите внимание на #, а не на =. # представляет собой выражение привязки данных

person Town    schedule 01.06.2011
comment
Спасибо. Работал как шарм. Использовал # и добавил вызов DataBind() к моему событию Page_PreRender. - person Dismissile; 01.06.2011

Поскольку элемент управления отображается иначе, чем литерал. Используйте программный код для установки свойства Text.

person Daniel A. White    schedule 01.06.2011