【问题标题】:__doPostBack not rendering on postback__doPostBack 未在回发时呈现
【发布时间】:2008-09-08 20:22:48
【问题描述】:

我遇到了一个奇怪的问题。

我必须使用GetPostBackEventRefence 强制回发,但它第一次工作,在第一次回发后,.NET 函数没有呈现......有什么想法吗?

这是回发后我所缺少的:

<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
    var theform;
    if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
        theform = document.Main;
    }
    else {
        theform = document.forms["Main"];
    }
    theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
    theform.__EVENTARGUMENT.value = eventArgument;
    theform.submit();
}
// -->
</script>

【问题讨论】:

    标签: asp.net javascript postback


    【解决方案1】:

    好吧,按照这个想法,我创建了一个带有回发引用的虚拟函数,它可以工作......但它仍然很奇怪,因为它第一次正确渲染

    this.Page.RegisterClientScriptBlock("DUMMY", "<script language='javascript'>function dummy() { " + this.Page.GetPostBackEventReference(this) + "; } </script>");
    

    【讨论】:

      【解决方案2】:

      我首先要看的是页面上是否显示了任何asp 控件(例如链接按钮、组合框,它们通常不会生成提交但需要回发)。 只有当 ASP 认为您的某个控件需要它时,__doPostback 函数才会被放入页面中。

      如果您不使用其中之一,您可以使用:

      Page.ClientScript.GetPostBackClientHyperlink(controlName, "")
      

      将功能添加到您的页面

      【讨论】:

      • 问题是第一次(不是回发)它正确呈现......它是同一个页面
      • 也许你在回发时隐藏了链接按钮?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 2017-01-28
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      相关资源
      最近更新 更多