【发布时间】:2011-09-28 08:01:10
【问题描述】:
在 ASP.Net 页面上,我只遇到了 IE 的问题。这是描述。
在一个页面上,有两个按钮和一个标签。第一个按钮是可见的,并在点击事件上调用一个 JS 函数。这个JS函数调用了第二个按钮的点击函数。第二个按钮在 click 事件上有一个 C€ 事件处理程序。 C# 事件处理程序编辑标签。
在 Firefox 中:标签在点击后被正确编辑。 在 IE (8) 中:标签未编辑,尽管 C€ 事件处理程序已正确命中。
另外,我观察到,在 IE 中,Page_Load 事件在 JS 按钮单击后被调用了两次: Page_Load button2_OnClick => 更改标签文本 Page_Load => 标签文本被重置:(
在 Firefox 中,Page_Load 只被调用一次。
我的问题是:如何让 IE 在单击 JS 按钮后像 Firefox 一样正确刷新页面?
下面是示例测试代码:
1) 页面 ASPX
<head runat="server">
<title></title>
<script type="text/javascript">
function button1Click(sender, args) {
var button2 = document.getElementById("button2");
button2.click();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button runat="server" ID="button1" Text="Click-me!" OnClientClick="button1Click();" />
<asp:Button runat="server" ID="button2" Text="Second" OnClick="button2_OnClick" style="display:none" />
<p />
<asp:Label runat="server" ID="label1" Text="Init" />
</div>
</form>
</body>
</html>
2) C# 代码隐藏:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void button2_OnClick(object sender, EventArgs e)
{
label1.Text = "Changed";
}
}
【问题讨论】:
标签: c# javascript asp.net internet-explorer