2009-05-12 10 views
0

私は本当に私が気まずいと感じさせる問題があります。私はテキストボックスを継承するカスタムコントロールを持っています。このテキストボックス(少なくともこの例では)には、.dllファイルに.jsファイルが埋め込まれています。RegisterClientScriptResource + AJAXアップデートパネル

AJAXの更新パネルではない場合、ストーリーは短いです。だから私はいくつかの研究を行い、その代わりに:Page.ClientScript.RegisterClientScriptResourceを使用する必要があります、私はScriptManger.RegisterClientScriptResourceを使用する必要があります - 私はoverrdiveレンダリングメソッドでこれを行ったが、javascriptはまだ起動しません。

誰かが間違っていることを知っていますか?

例: 私はスクリプトと呼ばれる私のプロジェクトでフォルダを持っている - それは私が私のコントロールに属性を追加 私のアセンブリがJim.Bob.Controls

と呼ばれるmyscript.jsが含まれていますが、すなわち:Attributes.Addは( "onclickの"、" Test2(); ");オーバーライドで

はレンダリング:

ScriptManager.RegisterClientScriptResource(this.Page, typeof(CustomTextBox), "Jim.Bob.Controls.Scripts.myscript.js"); 

しかし、私はまだエラー '期待されるオブジェクト' を取得します。

AJAXで作業するにはテキストボックスが必要です。 ScriptMangerにアクセスするためにSystem.Web.Extensionsをプロジェクトにインポートしました

誰かが間違っていることを教えてもらえますか?

:-)事前に

おかげ--- UPDATEを:ここでも、この全体のことは私がAssemblyInfo.cs(,,,,などリソース)に必要なものを入れている、W/O AJAXうまく働きました--- コントロールを元に戻し、非AJAX Webで試してみましたが、同じ問題があります。なぜ私は問題があるのか​​分かりません。同じアセンブリで別のカスタムコントロールを使用していますが、まったく同じ方法で設定してください.WebControlを継承しているものはTextBoxを継承しません。 ... 私は働いています。私はhtmlのように出て行っています。 私は働いていないものがあります Attributes.Add( "onclick"、 "CustomFunction();");

また、私がAttributes.Add( "onclick"、 "alert( 'hello');"; 正常に動作します。

このような長い投稿には申し訳ありません。

答えて

1

this.Pageの代わりにthisを渡すようにしてください。 ScriptManagerは、更新されているコントロール(UpdatePanelの子である)のスクリプトのみを出力します。

レンダリング中にこれが行われていることに気付きました。それは遅すぎる。代わりにPreRenderを試してみてください。

+0

私も同じことを試みました。返信してくれてありがとう :-) – schmoopy

関連する問題