0

(ASP.NET AJAX Control Toolkitからの)エディターコントロールをリピーターの各要素に追加する方法を探しています。リピーターのItemTemplateに含めるだけで問題なく動作しますが、問題は、生成されるマークアップが大きく、ページの速度が大幅に低下することです(圧縮がオンの場合でも)。

更新パネルを使用してリピーターアイテム内にコントロールを追加することができませんでした-これはおそらく推奨される方法だと思いますが、リピーターアイテム内の更新パネル内にコントロールを動的に追加することは私が持っていたものではありません成功したことはありますが、私が見つけることができるこの良い例はないようです。

私が検討したもう1つの方法は、PageMethodsを使用してコントロールをレンダリングし、HTMLをページに返送して、JavaScriptで適切な場所に配置してから処理することでしたが、コントロールをレンダリングすることはできません。 「ページをnullにすることはできません。この操作がASP.NET要求のコンテキストで実行されていることを確認してください。」のInvalidOperationException。私の推測では、生成されたすべてのJavaScriptにより、エディターコントロールをその場でレンダリングすることはできません。

これを達成するための正しい方向に私を向けることができますか?

ありがとう

編集:可能であれば、別の方法は、ページのマークアップに通常のエディターコントロールを配置し、必要に応じてjavascriptを使用してリピーター内で移動することです。これは通常のコントロールで実行できますが、エディターで実行すると、正常に動作しません。テキストボックスは表示されますが、内部をクリックできません。これについて何かアイデアがあれば、それもありがたいです。このためのコードは次のとおりです。

<span id="spanHiddenEditor" style="display: block;">
    <cc1:Editor ID="ed1" runat="server" Height="200" Width="400" />
</span>
<script type="text/javascript">
    function createTextBox(idx) {
        var span = $get("span1_" + idx); // this gets me the target location
        var hiddenEditorSpan = $get("spanHiddenEditor")
        var editorHtml = hiddenEditorSpan.innerHTML;
        hiddenEditorSpan.innerHTML = "";
        span.innerHTML = editorHtml;
    }
</script>
4

1 に答える 1

0

クラスを使用してリピーター内の場所を特定し、jquery を使用してページの準備が整ったときに html を挿入します

$(function() {  
        $(".myclass").Append("<htmlz>");
}); 

次に、各テキスト ボックスを識別する必要がある場合は、親コンテナー ID を使用して識別できます。

$("#myID div.class input").value

私は完全なjqueryの初心者なので、どれもうまくいかない可能性がありますが、アイデアは良いものだと思います!

于 2009-12-09T22:42:13.223 に答える