我遇到了一个奇怪的问题。
我必须使用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>
答案 0 :(得分:4)
嗯,按照这个想法,我用postbackreference创建了一个虚拟函数,它可以工作......但它仍然很奇怪,因为它第一次正确渲染
this.Page.RegisterClientScriptBlock("DUMMY", "<script language='javascript'>function dummy() { " + this.Page.GetPostBackEventReference(this) + "; } </script>");
答案 1 :(得分:3)
我要看的第一件事是你是否在页面上显示任何asp控件(例如linkbutton,comboboxes,通常不会生成提交但需要回发)。 只有当ASP认为您的某个控件需要它时,__ doPostback函数才会被放入页面中。
如果你没有使用其中一种,你可以使用:
Page.ClientScript.GetPostBackClientHyperlink(controlName, "")
将功能添加到您的页面