Элемент управления, добавляемый динамически при нажатии кнопки (например, кнопка "сведения"), недоступен при нажатии другой кнопки (кнопка "отправить") в VB.NET
Элемент управления, добавляемый динамически при нажатии кнопки (например, кнопка Details), недоступен при нажатии другой кнопки (кнопка Submit) в VB.net
Я добавил элемент управления текстовым полем в один клик кнопки (скажем, btnDetails)
Он работает отлично.
Когда я получаю доступ к тому же текстовому полю в другом щелчке кнопки (скажем, btnSubmit)
Это показывает, что ссылка на объект не задана.
Как получить доступ к созданному текстовому полю?
Пожалуйста, помогите решить эту проблему.
Что я уже пробовал:
Я добавил элемент управления textbox одним щелчком кнопки (скажем, btnDetails).
Затемните mytextbox как новое текстовое поле
mytextbox.ID = "textbox1"
mytextbox.Текст = "Привет"
Моя панель.Управления.Добавить(mytextbox)
Он работает отлично.
Когда я получаю доступ к тому же текстовому полю в другом щелчке кнопки (скажем, btnSubmit)
TryCast(MyPanel.FindControl("textbox1"), TextBox).Текст = "Добро Пожаловать"
Это показывает, что ссылка на объект не задана.
Как получить доступ к созданному текстовому полю?
Пожалуйста, помогите решить эту проблему.
F-ES Sitecore
Элементы управления, которые вы создаете сами, не сохраняются в обратных сообщениях, поэтому при нажатии кнопки btnSubmit происходит обратная передача, и ваши динамические элементы управления больше не существуют. Вам нужно повторно добавить свои динамические элементы управления на каждый обратный отсчет.
Member 14102257
- Да, Сэр. Вот в чем проблема. Спасибо. Есть ли какое-либо другое решение для доступа к элементам управления без их повторного добавления?
Чтобы исправить это, я изменил часть создания динамических элементов управления с события нажатия кнопки на событие загрузки страницы(добавил новую страницу) и удалил (если не ispostback, то) условие.
Но я просто хочу знать, есть ли какие-либо другие возможности решить эту проблему в самом щелчке кнопки без повторного добавления элементов управления на каждом постбэке.
F-ES Sitecore
На самом деле нет, просто так работают веб-формы. Когда вы помещаете элемент управления на страницу aspx, Visual Studio добавляет код в файл конструктора для создания этого элемента управления, поэтому эти элементы управления доступны в первую очередь. Если вы добавляете свои собственные элементы управления, о которых .net не знает, то вам нужно повторить то, что .net делает для элементов управления на странице aspx, а именно создать их все с каждой обратной передачей.
Member 14102257
Хорошо. Благодарю вас сэр