1

Telerik の Web サイトにアクセスして、デモなどを見ましたが、RadEditor でコンテンツ (html) を読み込もうとすると問題が発生します。

HTML 文字列を取得して RadEditor に設定する Button_Click イベントがあります。RadEditor は RadWindow 内にあり、ボタンがクリックされたときにのみ表示されます。

        protected void btnSubmitHtml_Click(object sender, EventArgs e)
        {
            RadEditor1.Content = "<p>hello there</p>";
            RadWindow1.Visible = true;
        }

これは、奇妙な理由で RadEditor 内の html を表示しません。この問題に関係しているのはページのライフサイクルだと思います。

これを解決するための提案はありますか?

4

3 に答える 3

1

この問題に何度も遭遇しましたが、「適切な」解決策は見つかりませんでした。

ただし、優れた回避策は、注入されたスクリプトを介してクライアント側からコンテンツを設定することです。最終結果は同じで、10 ミリ秒の遅延を許容できる場合は検討に値します。

コメントが参照を要求した後に編集

基本的に、ASP.NET WebForms の $find 関数を使用してエディターのインスタンスを取得するために必要なものはすべてです。これは、レンダリングされたオブジェクトのルートの html ID を取得し、存在する場合はクライアント側の viewModel を返します。

最後の $(setEditorInitialContent) 呼び出しは、jQuery が存在すると想定し、ページが読み込まれるまで関数の実行を遅らせます。

<telerik:radeditor runat="server" ID="RadEditor1">
   <Content>
       Here is sample content!
   </Content>
</telerik:radeditor>
<script type="text/javascript">
    function setEditorInitialContent() {
        var editor = $find("<%=RadEditor1.ClientID%>"); //get a reference to RadEditor client object
        editor.set_html("HEY THIS IS SOME CONTENT INTO YOUR EDITOR!!!!");
    }
    $(setEditorInitialContent);
</script>
于 2013-09-17T13:58:50.907 に答える
1

RadEditor を RadWindow で動作させる方法については、http://www.telerik.com/help/aspnet-ajax/window-troubleshooting-radeditor-in-radwindow.html を参照してください

簡単に言うと、RadWindow の OnClientShow イベントに必要なものは次のとおりです。

function OnClientShow()
{
    $find("<%=RadEditor1.ClientID %>").onParentNodeChanged();
}
于 2013-09-19T09:43:01.960 に答える
0

Html コードを編集するには、追加できるのは -

EnableTextareaMode="true"

このプロパティを RadEditor に追加します。

コントロールが html を解釈しようとする方法が問題の 1 つかもしれないと思います。この問題を引き起こしている可能性のあるもう 1 つのことは、ページのライフ サイクルです。

于 2013-09-18T11:43:18.037 に答える