2016-09-22 5 views
0

У меня есть jhtmlarea текстовое поле на моей формеjhtmlarea не работает внутри UpdatePanel

textarea id="txtDigital" name="txtDigital" class="form-control" style="background-color:white; resize: vertical !important; " 
              rows="20" placeholder="Details" runat="server"></textarea> 

который в настоящее время установлен в JavaScript с:

$(document).ready(function() { 
    $(function() { 
     $("#<%=this.txtDigital.ClientID%>").htmlarea({ 
      toolbar: [ 
      ["bold", "italic", "underline", "strikethrough"], 
      ["increasefontsize", "decreasefontsize", "forecolor"], 
      ["orderedList", "unorderedList", "superscript", "subscript"], 
      ["indent", "outdent", "justifyleft", "justifycenter", "justifyright"] 
     ] 
     }); 
    }); 
}); 

, который работает хорошо, пока я не добавить ASP.NET UpdatePanel - textarea находится внутри панели обновления, и когда страница загружается, она просто загружается как обычная текстовая область. Я использовал Firebug, чтобы пройти, и код запускается, но не после обновления UpdatePanel, я подозреваю. Удаление панели обновлений позволяет загружать ее как jhtmlarea, как и ожидалось.

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

Буду признателен за любую помощь по поводу ее работы внутри UpdatePanel.

Благодаря

ответ

1

Сво проблема, при которой парциальное постбэк, который не вызывает событие Jquery, вам нужно пересвязать JQuery после PostBack.You нужно по имени функции и передать его в качестве endRequest обратного вызова, так что, когда браузер передает управление demo() вызывается

function demo() 
{ 
    $("#<%=this.txtDigital.ClientID%>").htmlarea({ 
      toolbar: [ 
       ["bold", "italic", "underline", "strikethrough"], 
       ["increasefontsize", "decreasefontsize", "forecolor"], 
       ["orderedList", "unorderedList", "superscript", "subscript"], 
       ["indent", "outdent", "justifyleft", "justifycenter", "justifyright"] 
      ] 
    }); 
} 

$(document).ready(demo); 

Теперь добавьте ниже сценарий в файле ASPX после ScriptManager

<script type="text/javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(demo); 
</script> 
+0

Это сработало отлично - спасибо. –

Смежные вопросы