0

Ajax ツールキット コントロールが更新パネルに動的に追加されると、問題が発生します。テスト ユーザー コントロール (UC_Test.ascx) があり、その中に HtmlEditorExtender を含む Textbox があります。

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="UC_Test.ascx.cs" Inherits="UC_Test" %>
<asp:TextBox runat="server"  ID="textbox1" CssClass="textbox" Height="40px"/>
<asp:HtmlEditorExtender runat="server" TargetControlID="textbox1"></asp:HtmlEditorExtender>

別のコントロールには、2 つの要素 (ボタンとプレースホルダー) を含む更新パネルがあります。

<asp:UpdatePanel runat="server">
    <ContentTemplate>
        <asp:Button Text="Add" runat="server" OnClick="button_click" />
      <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
    </ContentTemplate>
</asp:UpdatePanel>

ボタンクリックイベントのコードビハインドは次のとおりです。

protected void button_click(object sender, EventArgs e)
    {

            PlaceHolder1.Controls.Clear();
            PlaceHolder1.Controls.Add(LoadControl("~/UC_Test.ascx"));

    }

これで、ボタンをクリックすると、コントロール (UC_Test) が ajax モードでプレースホルダーに追加されますが、HtmlEditorExtender のリソース (css ファイルと画像) は読み込まれませんでした。追加されたコントロールからスナップショットを作成します:

AjaxToolKit HtmlEditorExtender の問題、更新パネルに動的に追加したとき

画像を見ての通り、htmlEditorExtender のアイコン (コピー、貼り付けなど) はロードされていません。

4

2 に答える 2

0

私はこれが1年前であることを知っていますが、私はこの同じ問題を抱えていました. 私の場合、すべてのボタンにグローバルに適用される CSS クラスがありました。

以下でした。

background: #666666;

Firefox の firebug プラグインは、これが css を次のようにレンダリングした結果であることを示しました。

background: none repeat scroll 0 0 #e6e6e6;

このCSS行を無効にすると、ボタンが表示されます。この問題を解決するには、変更する必要がありました。

background: #666666;

background-color: #666666;

この後、ボタンは正しくレンダリングされました。これで全員の問題が解決するわけではありません。しかし、場合によってはそうかもしれません。

于 2015-04-17T14:09:24.770 に答える
0

この問題には回避策があります。マスター ページの scriptmanager と最初の updatepanel の間に非表示のパネルを配置し、その中にダミーのテキスト フィールドと HtmlEditorExtender を配置します。これにより、動的に読み込まれたコントロールの HtmlEditorExtenders が正しくレンダリングされます。

どうやら、エクステンダーは最初のロードで特定のリソースをロードする必要があります。マスター ページのダミーは、その後作成されるエクステンダーがこれらのリソースを利用できるようにします。

ajaxcontroltoolkit.codeplext010tによって投稿されたソリューション。

于 2013-05-12T17:44:41.647 に答える