0

フォームに jhtmlarea テキストエリアがあります

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 を追加するまで問題なく動作します。テキストエリアは updatepanel 内にあり、ページが読み込まれると、プレーン テキストエリアとして読み込まれます。Firebug を使用してステップスルーし、コードは実行されますが、UpdatePanel が更新された後ではないと思われます..updatepanel を削除すると、期待どおりに jhtmlarea としてロードできます。

テキストエリアを表示するときに同じコードを関数として呼び出してみましたが、jhtmlarea として正しくフォーマットされていますが、ページを調べたときに表示されない方法が無効になっています。

UpdatePanel 内で動作させるための助けをいただければ幸いです。

ありがとう

4

1 に答える 1

1

jquery イベントを呼び出さない部分的なポストバックの問題です。PostBack の後に 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>
于 2016-09-22T17:52:00.983 に答える