【问题标题】:ICallBackEventHandler does not update controls with form valuesICallBackEventHandler 不使用表单值更新控件
【发布时间】:2009-01-19 16:53:58
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: asp.net icallbackeventhandler


    【解决方案1】:

    看看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"));
    

    【讨论】:

      【解决方案2】:

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

      当您现在执行回发时,回调期间修改的值将可用。不用说,它们将在回调期间可用。

      function SomeCode()
      {
          __theFormPostCollection.length = 0;
          __theFormPostData = "";
          WebForm_InitCallback();
      
          ExecuteMyCallbackMethod("yaday", "yadya");
      }
      

      【讨论】:

        猜你喜欢
        • 2016-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多