Shubhangi Dhole Ответов: 2

Избегайте полного обновления страницы при нажатии кнопки


У меня есть сетка, которая содержит текстовое поле. По умолчанию сетка содержит 10 строк. Когда я нажимаю на кнопку Добавить новую строку в шаблоне нижнего колонтитула , введенные предыдущие сведения будут удалены. Пожалуйста, дайте мне решение, чтобы предыдущие детали не были очищены при нажатии кнопки.

Что я уже пробовал:

Я пробовал несколько панелей обновления и AsyncPostBackTrigger

MadMyche

Показать фактический код используется для сетки и триггера... Я забыл свою шапочку из фольги так что не вижу где может быть ошибка

2 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

Цитата:
сетка содержит 10 строк.
Я чую, что этот код принадлежит ASP.NET веб—формы, если это так, то вам нужно убедиться, что каждый раз, когда страница отправляется на сервер, вы сохраняете состояние элементов управления и возвращаете его в браузер-который будет показан пользователю после перезагрузки страницы. Ознакомьтесь со следующими ссылками, чтобы понять, как это будет работать,

asp.net webforms и jquery: как сохранить/восстановить состояние jquery между постбэками? - переполнение стека[^]
состояние представления - как в магазине ASP.NET форм государственной страницу между запросами - переполнение стека [^]

Один из простой, чистый и элегантный способы сделать это с помощью event.preventDefault(); это предотвратит отправку формы. Но в этом случае вам нужно самостоятельно загрузить контент на сервер с помощью Ajax и т. д.
// This will work in ASP.NET Web Forms too, but would cause other issues
$("#btnId").click(function () {
   event.preventDefault();
});
Так как ваш фреймворк является ASP.NET веб-формы, вам нужно убедиться, что этот JavaScript вызывается со стороны клиента, например так,
// return false; does the same thing, from 1000 ft above.
OnClientClick="uploadDataManually(); return false;" />
Вы также можете использовать идентификатор элемента управления, который вы установили в ASP.NET веб-формы в коде JavaScript для управления этим поведением, то есть до вас.


Рейтинг:
2

Vincent Maverick Durano

UpdatePanel не имеет ничего общего с поддержанием состояния и ценностей общества. WebForm Controls Вы должны отслеживать состояние и хранить их где-то на носителе данных (например, Session, ViewState или Database), чтобы можно было ссылаться на значения в обратных сообщениях. Проверьте эту статью, которую я написал много лет назад: Динамическое добавление и удаление строк в GridView и сохранение всех строк сразу[^]

Если вы хотите избежать полного обновления страницы, то не используйте элемент управления UpdatePanel, так как это только причинит больше боли прикладу. Вместо этого используйте AJAX с клиентской сеткой (например, jQuery grid, Webgrid и т. д.) и обрабатывайте все на клиенте (код JavaScript). Однако один недостаток, если вы собираетесь использовать маршрут на стороне клиента, заключается в том, что вы потеряете все функции, которые может предложить серверный GridView, поскольку серверные элементы управления предназначены для манипулирования на сервере.