Смешивание серверных элементов управления и шаблонов jquery на странице ASP.NET - PullRequest
1 голос
/ 18 ноября 2011

Я работаю над страницей, которая имеет сочетание элементов управления на стороне сервера и простых элементов управления html, отображаемых с использованием шаблонов jquery. Это приложение веб-формы ASP.NET.

Когда на стороне сервера делается запрос, нажимая кнопку сохранения, если проверка не проходит на сервере, то при обратной передаче теряются значения, введенные в простые элементы управления html (так как у него нет состояния просмотра).

Единственное решение, которое я могу придумать, - это сохранить состояние простых элементов управления html в скрытом элементе управления вводом до того, как будет сделан запрос к серверу. Если проверка не удалась, повторно скопируйте шаблон jquery из этого скрытого ввода. Кажется, я могу использовать функцию serialize в jquery, но мне нужно игнорировать серверные элементы управления из этой коллекции (я думаю?)

Есть ли более простой способ, чем необходимость сериализации / десериализации информации? Поможет ли UpdatePanels?

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Честно говоря, я не думаю, что UpdatePanels когда-либо поможет.Они усложнят ваш код (хотя в вашем коде уже может быть много операторов if (Page.IsPostback == false)), и запросы могут быть очень медленными.Лично я нахожу их чрезвычайно громоздкими в использовании.

В зависимости от размера и сложности вашей страницы, возможно, стоит зайти на веб-сервисы .asmx.Я сам широко их использовал (для этой конкретной ситуации, на самом деле), и их довольно легко назвать, если вы уже используете jQuery.

Однако , какПредостережение: я прочитал несколько вопросов здесь и статей в других местах, говоря, что веб-сервисы в стиле .asmx постепенно исчезают, и что вы должны начать использовать WCF для замены этой функциональности.

Если вы опубликуете некоторые из вашихкод разметки и / или C # (он вовсе не должен быть сложным; достаточно того, чтобы мы говорили на одном языке (ужасная шутка)), я мог бы предоставить вам примеры вызовов jQuery AJAX и примеры WebService.

0 голосов
/ 20 ноября 2011

Мне кажется, что у вас возникнет эта проблема в любое время, когда на одной из ваших страниц возникнет обратная передача, которая не приведет к перенаправлению. По сути, у вас нет способа сохранить состояние простых элементов управления html в запросе и ответе обратной передачи. По сути вам нужен JQuery эквивалент viewstate для ваших простых элементов управления HTML. По сути, я говорю о том, что использование функции сериализации JQuery для сохранения состояния, возможно, является самым простым способом сделать это. ViewState работает путем сериализации состояния элемента управления и помещения его в скрытое поле. Таким образом, вы, по сути, будете создавать собственную реализацию viewstate для созданных вами простых элементов управления html.

...