2016-09-22 50 views
0

我有一个jhtmlarea textarea的工作我的形式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位于updatepanel内部,并且当页面加载时,它只是作为纯文本区域加载。我使用Firebug来逐步完成代码的运行,但是UpdatePanel刷新后我怀疑没有运行。移除updatepanel允许它按预期方式加载为jhtmlarea。

我试着调用相同的代码作为函数,当我显示textarea时,它的格式为jhtmlarea正确,但是,禁用了一些当我检查页面时看不到的东西。

我很感激任何关于让它在UpdatePanel中工作的帮助。

感谢

回答

1

它在那里不调用的jQuery事件的部分回发,您需要PostBack.You需要一个命名函数修改后重新绑定jQuery和它当作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

完美的工作 - 谢谢。 –