1

最初にドロップダウンリストをロードするWebページがあります。リストからアイテムを選択すると、更新パネルの非同期ポストバック中にWebフォームが動的に作成されます。

一部のテキストボックスに透かしエクステンダーを追加しましたが、ページが最初に更新されたときに透かしが表示されません。テキストボックスの1つにフォーカスしてからフォーカスアウトすると、透かしが表示され、正常に機能しているように見えます。ソースを調べたところ、透かしのクライアント側での作成が、クライアント上のSys.Applicationのinitイベントに関連付けられていることがわかりました。

これが私が混乱しているところです。1.クライアント側のページSys.Application.initializeイベントにハンドラーを追加して、非同期ポストバックのライフサイクル中に呼び出されたかどうかを確認しました。イベントを開始したようには見えませんでした。2. PageRequestManager End Requestメソッドにハンドラーを追加して初期化イベントを発生させようとしましたが、ページが既に初期化されているかどうかを確認するフラグが設定されているため、個々のハンドラーは起動されませんでした。3. 1と2の後、フォーカスを適用したときに透かしエクステンダーが何らかの形で遅延ロードされているのではないかと思いました。そこで、PageRequestManagerのEndRequestイベントのinitializeイベントで実行されるはずの$createステートメントを配置しました。透かしエクステンダーが明らかにすでに作成されているため、クライアントスクリプトはエラーをスローしました。

独自の透かしコードを書く以外に、ここでの解像度が何であるかはわかりません。これは制限ですか(エクステンダーは、ページの最初のリクエストで作成された場合にのみ正しく機能しますか)?そして、initイベントはどうですか?発火しているのが見えませんが、エクステンダーがすでに作成されている場合は、持っている必要がありますか?

どんな助けでもいただければ幸いです。ありがとう。

4

1 に答える 1

0

透かし拡張機能は、他の人にも頭痛の種を与えます. jquery透かしプラグインhttp://jquery-watermark.googlecode.com/をご覧になることをお勧めします

于 2011-12-06T11:09:14.590 に答える