В файлах .ASPX есть несколько разных типов выражений. Там же:
<%= TextFromMethod %>
, который просто резервирует буквенный элемент управления и выводит текст во время рендеринга.
а затем есть:
<%# TextFromMethod %>
, которое является выражением привязки данных, вычисляется, когда элементом управления является DataBound (). Есть также конструкторы выражений, такие как:
<%$ ConnectionStrings:Database %>
но это не очень важно здесь ...
Таким образом, метод <%= %>
не будет работать, потому что он попытается вставить литерал в свойство .Text ... очевидно, не то, что вам нужно.
Метод <%# %>
не работает, поскольку TextBox не является DataBound и не является его родителем. Если ваш TextBox был в Repeater или GridView, то этот метод работал бы.
Итак - что делать? Просто позвоните TextBox.DataBind()
в какой-то момент. Или, если у вас есть более одного элемента управления, просто позвоните Page.DataBind()
в ваш Page_Load
.
Private Function Page_Load(sender as Object, e as EventArgs)
If Not IsPostback Then
Me.DataBind()
End If
End Function