2011-02-15 85 views
1

我无权访问<body>标签,因为它在母版页中。 我想触发自动回发时,页面加载速度为:在javascript中触发自动回发

<script type="text/javascript"> 
     window.onscroll= __doPostBack("<%= button.ClientID %>", ""); 
</script> 

我应该在哪里把这个代码?如果我将它放在</asp:Content>标记之前,我会得到未实现的JS错误。

任何想法我应该怎么做?

PS:我需要触发回传,因为我想填充一个UpdatePanel页面加载时

回答

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是正确的并且确实存在于文档中,我们将尝试找出问题所在。

+0

谢谢,但我没有使用MVC。编译器不理解<%。我能解决这个问题吗?再次感谢 – Ryan 2011-02-15 21:21:40