2015-02-13 1 views
0

У нас есть страница с Telerik RadEditor на полосе вкладок. Существуют сценарии, когда RadEditor содержит много html и при выполнении сообщения назад для переключения вкладки все его содержимое отправляется обратно на сервер. Это приводит к гигантской потере производительности (бывают случаи, когда post backs отправляют десятки MiB данных). Можно ли настроить RadEditor таким образом, чтобы он не отправлял свое содержимое на сервер по обратной почте? Наш код-код не зависит от свойства доступа к ресурсам RadEditors Content Content (не читает его содержимое явно), а только его мутатор (его содержимое задается из кода кода управления). Можно ли делать такие вещи с любым из элементов управления Telerik, и если да, то как мы достигаем такого результата?Отключить передачу определенных свойств элемента управления Telerik RadEditor

Стоит отметить, что мы используем относительно старый UI-версию Telerik (2013.2.611.35), и мы не можем переключиться на более новую версию на данный момент.

Заранее спасибо.

+0

Вы можете использовать 'ASP.NET-Ajax' для отображения только части HTML. –

+0

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

+1

Итак, у вас есть RadTabStrip, и на одной из вкладок у вас есть RadEditor, правильно? Нажатие на другую вкладку обычно * перенаправляет * на URL-адрес, а не обратно, потому что вкладка является навигационным элементом управления. Можете ли вы подтвердить, что это действительно обратная передача? –

ответ

1

Рассмотрите возможность использования ContentUrl из PageViews. Это позволит вам загружать отдельные страницы в iframe, поэтому они будут возвращаться независимо от главной страницы. Таким образом, у вас может быть отдельная страница с редактором и отдельными страницами для ваших других вкладок.

О возможности исключения чего-либо из запроса POST - я не знаю, как это сделать, поскольку это не должно произойти. Все дело в том, чтобы перенести текущее состояние страницы на сервер.

Другой вариант, который вы можете рассмотреть, - использовать AJAX и событиеRRequest PageRequestManager, чтобы попытаться отключить редактор. Я не пробовал это, и я не знаю, будет ли это на самом деле работать, поскольку столько данных может быть слишком большим для того, чтобы движок JS обрабатывался до начала обратной передачи. Вот немного кода, который иллюстрирует идею:

 var currContent = null; 
     function BeginRequestHandler(sender, args) { 
      var editor = $find("<%=RadEditor1.ClientID%>"); 
      currContent = editor.get_html(true); 
      editor.set_html(""); 
     } 
     function EndRequestHandler(sender, args) { 
      var editor = $find("<%=RadEditor1.ClientID%>"); 

      editor.set_html(currContent); 
      currContent = null; 
     } 
     Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler); 
     Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
+0

Большое спасибо. Я на самом деле пытался реализовать этот механизм, о котором вы говорили (гашение скрытого ввода и его повторное наполнение). Но это не сработало. Я немного исследовал и нашел источник проблемы: у нас был весь редактор рада (и многое другое), завернутый в , который был обновлен через RadAjaxManager somplace else, поэтому я уже решил эту проблему. Спасибо, в любом случае. –