Я сталкивался с этой проблемой несколько раз за свою карьеру и так и не смог найти для нее элегантного решения.Представьте, что у вас есть простая страница с повторителем.Вы заполняете этот повторитель на стороне сервера через привязку данных.Это здорово, работает быстро и делает то, что должен.Но теперь вы хотите добавить paginator к этому повторителю или иначе изменить выход.Выполнение этого с помощью Ajax является предпочтительным способом обеспечения расширенного взаимодействия с клиентом.
Таким образом, вы создаете веб-сервис, который предоставляет вам данные в виде JSON, но теперь вы застряли ... Либо вам нужно написать сложный клиентна стороне кода, чтобы найти каждое поле, которое вам нужно изменить в каждом элементе повторителя, или вы должны уничтожить весь вывод ретранслятора на стороне сервера и создать новый HTML с нуля, или метод, который я использовалиспользуя в последнее время, возьмите первый повторяющийся элемент, сдуйте все остальное и клонируйте первый элемент столько раз, сколько вам нужно, и измените его поля.
Все описанные методы не оптимальны, потому что, несмотря ни на что,они требуют довольно много повторяющейся логики на стороне сервера (то есть шаблон в повторителе) и на стороне клиента (javascript для отображения данных JSON).Должен быть лучший, более простой способ сделать это.Первое, что приходит на ум, это вместо того, чтобы возвращать JSON с веб-сервера, возвращать HTML предварительно заполненного повторителя.Но для чего-то подобного я мог бы также использовать панель обновления ASP.NET AJAX.Результат не будет меньшим с автономным веб-сервисом.
Следующая вещь, о которой я подумал, это шаблоны JavaScript.Что, если будет какой-то способ взять необработанный шаблон повторителя на стороне сервера и преобразовать его в шаблон JavaScript, который может быть либо встроен на странице при загрузке, либо служить частью ответа веб-службы.Однако я не мог найти какие-либо существующие решения для чего-то вроде этого.И я не могу придумать простой способ сделать это сам.Любые идеи?
PS Визуализация шаблона JavaScript на стороне клиента при загрузке страницы и использование JavaScript для его заполнения без визуализации начального представления на сервере (без повторителя и привязки данных) не подлежит обсуждению.Я слишком беспокоюсь о производительности.