ICallBackEventHandler不会使用表单值更新控件

时间:2009-01-19 16:53:59

标签: asp.net icallbackeventhandler

我想使用ICallBackEventHandler但是当我用它来回调服务器时,我发现我的表单控件对象没有最新的表单值。有没有办法强制使用表单数据填充值?

感谢。

2 个答案:

答案 0 :(得分: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"));

答案 1 :(得分:0)

你显然仍然没有同样的问题,但你需要做的是在JavaScript回调代码之前调用WebForm_InitCallback()。这将使页面刷新Request.Form对象中的POST值。

当您现在执行PostBack时,回调期间修改的值将可用。不言而喻,它们将在Callbacks期间可用。

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

    ExecuteMyCallbackMethod("yaday", "yadya");
}