Я хочу установить TextBox Text в файле aspx
, используя метод C#.
Вот что я сделал:
ASPX:
<asp:TextBox ID = "txt_btc_in_eth" runat = "server" Text = "<%# txt_btc_in_eth_val() %>" CssClass = "only_decimal"></asp:TextBox>
С#:
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
> все равно не работает
Используйте ‘<%=’ вместо <%#
Опишите рассматриваемую ошибку. Ваш метод должен быть защищен или общедоступен.
Ошибки нет - метод txt_btc_in_eth_val() не вызывается - не знаю почему!? Я поставил точку останова во время запуска и увидел, что он никогда не звонит.
Попробуйте использовать простой ввод html вместо управления сервером Asp TextBox. Я помню, что это может быть проблемой. Я не использовал Asp.Net уже 10 лет, поэтому я угадываю ответ. Серверные элементы управления работают с привязкой или установкой значения непосредственно в коде, как указано в первом комментарии.
Вы также можете использовать общедоступное свойство вместо метода, что делает код чище.
Из любопытства, почему вы используете WebForms в 2020 году? Это устаревшая, тупиковая платформа, которая некорректно работает с современными веб-браузерами.
Это старый проект, который я меняю.
<%#
требует вызова DataBind()
метода. Будет ли работать, если вы позвоните DataBind()
на PageLoad
мероприятии?
Нужна ли замена без DataBind()
?
Вы должны вызвать метод DataBind() этого TextBox в Page_Load().
txt_btc_in_eth.DataBind();
Давно не делал aspx, но я думаю, что помню, что% # был для привязки данных. попробуй %=. однако я бы установил значение текстового поля с помощью txt_btc_in_eth.Text = "mystring".