2

CompositeC1のユーザーコントロール内からカスタムJavaScriptブロックを追加しようとしています。ユーザーコントロールは、ネストされたマスターページに統合されています(Frontpage.masterと呼ばれます-Composite C1の基本的なスターターサイト「ASP.NETマスターページ」が使用されているため、可能な限り近づけたいと思います)。

問題を分析するために、ユーザーコントロール内で非常に単純なコードが使用されています。

    string _jsScriptBlock = "alert('here');";

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.Page.IsPostBack)
        {
            ClientScriptManager scriptMgr = this.Page.ClientScript;
            if (!scriptMgr.IsClientScriptBlockRegistered(this.GetType(), "jsScriptBlock"))
            {
                scriptMgr.RegisterClientScriptBlock(this.GetType(), "jsScriptBlock", _jsScriptBlock, true);
            }
        }
    }

同じコードが、ネストされたマスターページ内にユーザーコントロールを統合する別のテストASP.NETWebサイトで機能します。RegisterClientScriptIncludeはここには示されていませんが、まったく同じ問題です。

回避策として、ユーザーコントロールとマスターページのマークアップにJavascriptブロックとスクリプトリンクを直接追加することもできますが、必要に応じて登録することで「動的」なソリューションを好みます。

この問題がCompositeC1フレームワークの一般的な問題であるかどうか、誰か知っていますか?

4

0 に答える 0