2

ICallBackEventHandlerを使用したいのですが、これを使用してサーバーにコールバックすると、フォームコントロールオブジェクトに最新のフォーム値がないことがわかりました。値にフォームデータを強制的に入力する方法はありますか?

ありがとう。

4

2 に答える 2

2

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"));
于 2009-02-02T16:05:33.907 に答える
0

明らかに同じ問題はまだありませんが、JavaScript コールバック コードの前に WebForm_InitCallback() を呼び出す必要があります。これにより、ページで Request.Form オブジェクトの POST 値が更新されます。

PostBack を実行すると、Callback 中に変更された値が使用可能になります。コールバック中に利用できることは言うまでもありません。

function SomeCode()
{
    __theFormPostCollection.length = 0;
    __theFormPostData = "";
    WebForm_InitCallback();

    ExecuteMyCallbackMethod("yaday", "yadya");
}
于 2010-05-14T16:22:10.027 に答える