Я предпочитаю привязанные к данным теги в разметке document.getElementById ('<% # TextBox1.ClientID%>'). Value, вместо использования реализации тега на стороне сервера <% = TextBox1.ClientID%>.
Теги на стороне сервера запрещают вам добавлять элементы управления в код в коде. Это обычно возникает, когда вы создаете свое приложение, и подход, основанный на данных, может спасти вас от серьезных переписываний.
При использовании серверных тегов, также известных как «кодовые блоки», выполняющие эту обычную операцию
this.Form.Controls.Add (myContorl);
генерирует эту ошибку во время выполнения:
Коллекция элементов управления не может быть изменена, поскольку элемент управления
содержит блоки кода (т. е. <% ...%>).
К сожалению, это часто становится очевидным только после того, как вы создали свой веб-сайт.
При реализации привязанного к данным элемента управления «<% # TextBox1.ClientID%>» разрешите значение свойств элемента управления, на которое есть ссылка в разметке, в соответствующем месте, например в конце привязки данных Page_Load, следующим образом:
* * Page.DataBind тысячи двадцать-одина () * * тысяча двадцать две
Имейте в виду, что Page.DataBind () заставляет дочерние элементы управления на странице также использовать DataBind, это может быть нежелательным побочным эффектом, если страница обрабатывает привязку данных некоторых дочерних элементов управления отдельно. В этом случае привязка данных может быть выполнена для отдельного элемента управления следующим образом:
TextBox1.DataBind ()
Эволюция приложений в конечном итоге приводит к некоторой функциональности базового сайта, где вы можете захотеть добавить базовые элементы управления, как только вы засыпали свое приложение веб-сайта тегами на стороне сервера, а замена их на привязки данных становится проблематичной, особенно когда страницы закодированы обрабатывать привязку данных самостоятельно.