__doPostBack不在回发时呈现
时间:2020-03-05 18:49:38 来源:igfitidea点击:
我有一个奇怪的问题。
我必须使用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控件(例如linkbutton,组合框,通常不会生成提交但需要回发)。
仅当ASP认为控件之一需要__doPostback函数时,该函数才会放入页面中。
如果我们不使用其中之一,则可以使用:
Page.ClientScript.GetPostBackClientHyperlink(controlName, "")
将该功能添加到页面
回答
好吧,按照这个想法,我创建了一个带有postbackreference的虚拟函数,它的工作原理……虽然还是很奇怪,因为它第一次正确渲染
this.Page.RegisterClientScriptBlock("DUMMY", "<script language='javascript'>function dummy() { " + this.Page.GetPostBackEventReference(this) + "; } </script>");