Невозможно получить доступ к данным из элементов управления (таких как текстовое поле, флажок, список флажков), которые загружаются динамически через пользовательский элемент управления - PullRequest
0 голосов
/ 25 сентября 2018

Пожалуйста, найдите сценарий, над которым я пытаюсь работать:

У меня есть страница aspx, содержимое которой загружается путем динамической загрузки различных пользовательских элементов управления.Каждый из этих пользовательских элементов управления имеет свой набор элементов управления, таких как текстовое поле, список флажков или флажок.

При нажатии кнопки «Сохранить» я хотел бы захватить данные в текстовом поле и флажки из списка флажков.

Мне удалось успешно собрать данные из этих элементов управления, используя следующий фрагмент кода:

UserControl ctl1 = placeholder.FindControl("user_control_1") as UserControl;
if (ctl1 != null)
{
RadTextBox txtName = ctl1 .FindControl("txtFirstName") as RadTextBox;
if (txtName != null)
{
// Perform required CRUD
}
}

Этот подход работал хорошо, пока у меня не появилось новое требование.Чтобы удовлетворить новое требование, мне пришлось изменить логику, чтобы сделать запрос AJAX из jQuery, как показано ниже:

$.ajax({
type: "POST",
url: window.location.href,
data: {
data1: data
},
success: function (result) { //success
},
failure: function (result) {
//failure
}
}).done(function (o) {
//Error free
});

При таком запросе я не могу получить доступ к данным текстового поля (или отмеченным пунктам в списке флажков)на моем .cs.Любой вызов txtFirstName.Text возвращается как ноль.

UserControl ctl1 = placeholder.FindControl("user_control_1") as UserControl;
if (ctl1 != null)
{
RadTextBox txtName = ctl1 .FindControl("txtFirstName") as RadTextBox;
if (txtName != null)
{
// Works well till this point.
// txtName.Text returns empty value, inspite of having data in it
}
}

Может ли кто-нибудь предоставить указатели о том, как мне этого добиться?

РЕДАКТИРОВАТЬ: Поскольку новый запрос AJAX генерируется напри нажатии кнопки «Сохранить» все пользовательские элементы управления снова загружаются, что приводит к потере всех данных, введенных конечным пользователем.Каким образом я могу получить все введенные пользователем данные до того, как будет сделан запрос AJAX?Возможно, создать JSON в jQuery для текстовых полей и списков флажков, а затем передать это в «data»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...