我无法访问<body>
代码,因为它位于母版页中。
我希望在页面加载时触发自动回发:
<script type="text/javascript">
window.onscroll= __doPostBack("<%= button.ClientID %>", "");
</script>
我应该把这段代码放在哪里?如果我将它放在</asp:Content>
标记之前,我会得到一个未实现的JS错误。
知道我应该怎么做吗?
PS:我需要触发该回发,因为我想在页面加载时填充更新面板
答案 0 :(得分:4)
您可以将此类代码放在任何位置:
<% if (!Page.IsPostBack) { %>
<script type="text/javascript">
window.onload = function() {
__doPostBack("<%= button.ClientID %>", "");
}
</script>
<% } %>
假设你正在使用C# - 如果你有VB.NET,语法会有所不同。
修改:为了避免使用<%
和%>
,您可以在页面的Page_Load中使用此内容:
if (!Page.IsPostBack) {
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "auto_postback", "window.onload = function() { __doPostBack(\"" + button.ClientID + "\", \"\"); }; ", true);
}
编辑II:更好的工作机会的替代方法是改为使用这样的JS代码:
"window.onload = function() { var buttonID = '" + button.ClientID + "'; alert('ID: ' + buttonID + ', clicking...'); document.getElementById(buttonID).click(); }; "
这将有希望显示按钮的客户端ID,然后自动单击它。如果没有运气,请确保ID正确并且确实存在于文档中,我们将尝试找出问题所在。