ICallBackEventHandlerを使用したいのですが、これを使用してサーバーにコールバックすると、フォームコントロールオブジェクトに最新のフォーム値がないことがわかりました。値にフォームデータを強制的に入力する方法はありますか?
ありがとう。
ICallBackEventHandlerを使用したいのですが、これを使用してサーバーにコールバックすると、フォームコントロールオブジェクトに最新のフォーム値がないことがわかりました。値にフォームデータを強制的に入力する方法はありますか?
ありがとう。
http://msdn.microsoft.com/en-us/magazine/cc163863.aspxをご覧ください。
つまり、変数「__theFormPostData」をクリアし、「CallbackEventReference」スクリプトの前に「WebForm_InitCallback()」を呼び出す必要があります。これにより、フォームの値がユーザー入力値で更新されます。このようなもの:
// from the above link
string js = String.Format("javascript:{0};{1};{2}; return false;",
"__theFormPostData = ''",
"WebForm_InitCallback()",
Page.GetCallbackEventReference(this, args, "CallbackValidator_UpdateUI", "null"));
明らかに同じ問題はまだありませんが、JavaScript コールバック コードの前に WebForm_InitCallback() を呼び出す必要があります。これにより、ページで Request.Form オブジェクトの POST 値が更新されます。
PostBack を実行すると、Callback 中に変更された値が使用可能になります。コールバック中に利用できることは言うまでもありません。
等
function SomeCode()
{
__theFormPostCollection.length = 0;
__theFormPostData = "";
WebForm_InitCallback();
ExecuteMyCallbackMethod("yaday", "yadya");
}