ASP.NET (веб-формы): использовать с минимальными серверными элементами управления и заменить JQUERY - PullRequest
2 голосов
/ 26 ноября 2010

В настоящее время я работаю с ASP.NET, и человек, который разработал форму, использовал все серверные элементы управления для таких вещей, как TextBoxes, Dropdowns и т. Д., Когда на самом деле они не предоставляют обратных передач. Некоторые из выпадающих и текстовых полей - это значения, которые мне нужны только в jQuery, так что, насколько я вижу, нет недостатков в покрытии этих элементов управления стандартными элементами управления html, а не серверными элементами управления ASP.NET?

Полагаю, мне нужно будет продолжать использовать кнопку GetDataGrid в качестве серверного элемента управления, потому что она мне понадобится для обратной передачи (и получения событий PageLoad и т. Д. - всех событий asp.net) для обновления GridView ? Или можно было бы использовать GridView (серверный элемент управления ASP.NET) из веб-метода и вызывать его через Jquery?

Конечно, в моем веб-методе мне понадобится экземпляр gridview, чтобы добавить источник данных - но я не понимаю, как это было бы возможно без участия в событиях ASP.NET - или, возможно, я ошибался?

Еще одна вещь, о которой я подумал, - это изменить кнопку GetGridView на стандартный HTML и вызвать обратную передачу javascript из события клика клиента ?? Таким образом, это будет настоящий постбэк, и я окажусь в Page_load.

Принимая все в действие, я не хочу менять элемент управления GridView asp.net, так как он функционирует так же, как серверный элемент управления asp.net, но я не уверен, как мне это сделать.

Я помню доступный документ, в котором говорилось "как использовать веб-формы asp.net без серверных элементов управления", но я не могу его найти. Я предполагаю использовать веб-формы, такие как asp.net MVC - но я не могу изменить проект на MVC - он вне моего контроля.

Мне бы очень хотелось услышать отзывы о том, как это сделать, или комментарии и т. Д.

Я считаю, что веб-формы ASP.NET вводят много запаха кода в страницы - я использую .NET 3.5, поэтому большая часть выводится с таблицами и т. Д. *

Ответы [ 3 ]

1 голос
/ 26 ноября 2010

Кроме того, я не думаю, что с asp.net (код сзади) возможно получить значения элемента управления html> без runat = server.

Используйте веб-методы. Установите клиентское событие (например, «onchange») в элементе управления html, а затем в функции javascript, вызываемой при возникновении события, вы можете использовать PageMethods для отправки ваших данных в код позади.

1 голос
/ 26 ноября 2010

Если вы используете Request.Form ["..."] , тогда вы можете получить информацию, которая была заполнена в стандартных полях ввода html.

Вместо того чтобы продолжать использовать элемент управления GridView, я предлагаю вам взглянуть либо на jqGrid , либо на новую систему шаблонов , которую Microsoft внедрила для jQuery (в настоящее время это плагин, но ожидается быть частью ядра JQuery начиная с версии 1.5). Они могут быть привязаны к json , который может быть получен из вызова веб-метода или метода страницы, чтобы заполнить шаблон данными.

0 голосов
/ 26 ноября 2010

Некоторые мысли ...

Невозможно создать GridView в WebMethod, и даже если бы был способ заставить это работать, вам лучше было бы использовать настоящую клиентскую сетку,Поскольку это не вариант, я не думаю, что стоит слишком много пытаться внести какие-либо серьезные изменения в ваши существующие страницы.

ViewState

Изменение текстовых полей, кнопок и т. Д. На версии HTML, вы получите немного уменьшенный размер Viewstate, но добавите немного сложности в том, как вы обрабатываете взаимодействия со страницей.Вы можете добавить runat="server" к элементам управления HTML, что даст вам контроль над тем, что отображается, и при этом иметь доступ к элементу управления на стороне сервера.

.Net 4 дает вам гораздо больший контроль над viewstate, но, к сожалению, в 3.5это не так просто.

GridViews

Вы можете обернуть GridViews в UpdatePanels .Это «дешевый» способ добавить некоторую интерактивность на ваши страницы, хотя вы ничего не получите в плане производительности.

Также все еще возможно манипулировать Gridview с помощью jQuery на стороне клиента.Там много учебников, сообщений в блоге и т. Д., Объясняющих, как это сделать в Интернете.

MVC с веб-формами

Также возможно смешивать ASP.Net MVC с веб-формами на одном веб-сайте.Похоже, вы знакомы с MVC, вы можете рассмотреть этот подход для любых новых страниц. Вот сообщение в блоге, объясняющее, как это сделать.

Обновление: Вот более свежая статья Скотта Хансельмана о том, как использовать MVC с существующим приложением Webforms.

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