2010-12-15 11 views
0

マークアップjsファイルにバインドするasp.netページがあります。 Jsファイルは主にクラス名で機能セットを処理します。 これらの関数では、WCFを使用してサーバーからデータを取得し、状態とデータのみを変更します。 また、私はポストバックを行うページに。すべては問題ありませんが、その後jquery関数は機能しません。私はjqueryのロジックに関与していないグリッドに行を追加するポストバックの後。ポストバック後にASP.NETがjqueryバインディングを失う

しかし、ときに私は

$(ドキュメント).ready(関数()

$jq("#ctrlID").change(function() { });) 

に$(ドキュメント).ready(から私のロジックを変更関数()

$jq("#ctrlID").live('change', function() { });) 

すべて正常です。

私は困惑しています。それは何ですか?コントロールが追加されていない

答えて

2

$(ドキュメント).ready()は、DOMの準備ができたら実行されます。しかし、それはajax非同期ポストバックでは起動しないので、すべてのバインディングが失われます。 Live()は本質的にバインディングを常に「アクティブ」に保ちます。別の解決策は、ASP.NETクライアントフレームワークの一部であるpageLoad()クライアントサイドイベントを使用することです。このメソッドは、通常のポストバックと部分的なポストバックで起動し、通常と同じようにイベントをそこにバインドできます。あなたがポストバックまたは非同期ポストバックにいる場合にも決定するためにargs.get_isPartialLoad()を使用することができます

function pageLoad(sender, args) 
{ 
// Your event bindings here 
} 

関連する問題