我想使用ICallBackEventHandler但是当我用它来回调服务器时,我发现我的表单控件对象没有最新的表单值。有没有办法强制使用表单数据填充值?
感谢。
答案 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");
}