Установите текст текстового поля в aspx-файле с помощью метода C #

#c# #asp.net #visual-studio-2015

#c# #asp.net #visual-studio-2015

Вопрос:

Я хочу установить текстовое поле Text в aspx файле с помощью метода C #.
Вот что я сделал :

ASPX:

 <asp:TextBox ID="txt_btc_in_eth" runat="server" Text="<%# txt_btc_in_eth_val() %>" CssClass="only_decimal"></asp:TextBox>
 

C# :

 protected string txt_btc_in_eth_val()
{
    string output = "0.02";
    return output;
}
 

Но txt_btc_in_eth_val() никогда не звонит.
В чем проблема?


Редактировать 1:
Я также попробовал этот html вместо управления на стороне сервера :

 <span><%# txt_btc_in_eth_val() %></span>
 

txt_btc_in_eth_val() больше никогда не вызывает.


Редактировать 2:
<%= вместо <%# не работает.


Правка 3:

 public string txt_btc_in_eth_val()
{
    string output = "0.02";
    return output;
}
 

Я изменил protected на public > все еще не работает

Комментарии:

1. Давно не делал aspx, но я полагаю, что помню, что % # был для привязки данных. попробуйте %=. однако я бы установил значение текстового поля с помощью txt_btc_in_eth . Текст = «mystring».

2. Вместо этого используйте ‘<%=‘ <%#

3. Опишите ошибку, о которой идет речь. Ваш метод должен быть защищенным или общедоступным.

4. Попробуйте использовать обычный ввод html вместо серверного элемента управления текстовым полем Asp. Я помню, что это может быть проблемой. Я не использовал Asp.Net уже 10 лет, так что я угадываю ответ. Серверные элементы управления работают с привязкой или установкой значения непосредственно в коде, как указано в первом комментарии.

5. <%# требуется DataBind() вызвать метод. Работает ли это, если вы вызываете DataBind() PageLoad событие?

Ответ №1:

Вы должны вызвать метод DataBind() этого текстового поля в Page_Load().

 txt_btc_in_eth.DataBind();