Краткий ответ: да, вы можете заставить эту функцию работать. Мы предоставляем все наши индивидуальные настройки для клиентов аналогичным образом.
Длинный ответ заключается в том, что это потребует некоторой реструктуризации вашего приложения и HTML.
Самый простой способ реализовать это через UserControls. Основной подход:
1) Создайте содержимое своей страницы, которое хранится в БД, как UserControl, т.е.
<%@ Control Language="vb" AutoEventWireup="false" %>
<input id="txtTest" type="text" runat="server" />
2) Когда вы извлекаете его из БД, сохраняйте его в файле на диске с расширением ascx (скажем, на данный момент content.ascx).
3) Измените главную страницу, добавив div, работающий на сервере, на который будет загружен ascx:
<div id="divContent" runat="server">
</div>
4) В странице init загрузите элемент управления в div и инициализируйте его:
Dim oControl As Control
' Load a user control
oControl = Me.LoadControl("content.ascx")
If oControl IsNot Nothing Then
' Ensure viewstate is enabled
oControl.EnableViewState = True
' Set properties as required
oControl.ID = "ContentControl"
' Clear the existing control(s) from the content container
Me.divContent.Controls.Clear()
' And add the new one
Me.divContent.Controls.Add(oControl)
End If
5) Доступ к коллекции элементов управления, содержащихся в элементе управления div.
Обратите внимание, что при обратной передаче страницы в элементы управления не будет загружаться содержимое, пока не произойдет событие загрузки страницы из-за стандартного жизненного цикла страницы.
Я убедился, что код позади не требуется, и он работает точно так же, как описано выше.