在ASP.Net页面上,我仅遇到IE问题。这是说明。
在页面上,有两个按钮和一个标签。第一个按钮可见,并在click事件上调用JS函数。此JS函数调用第二个按钮的click函数。第二个按钮在click事件上具有C€事件处理程序。 C#事件处理程序可编辑标签。
在Firefox中:单击后正确编辑标签。
在IE(8)中:尽管C€事件处理程序已正确命中,但标签未编辑。
另外,我观察到,在IE中,单击JS按钮后两次调用了Page_Load事件:
Page_Load
button2_OnClick =>更改标签文本
Page_Load =>标签文本被重置:(
在Firefox中,Page_Load仅被调用一次。
我的问题是:如何在单击JS按钮后像Firefox一样使IE正确刷新页面?
以下是示例测试代码:
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";
}
}
参考方案
呈现按钮时,其ID将不是button1或button2。可能类似于ctl001_button1。因此,您的JavaScript将无法正常工作。在ASP.NET 4中,可以使用分配的ClientID覆盖此行为。
<asp:Button runat="server" ID="button1" Text="Click-me!"
OnClientClick="button1Click();" ClientIDMode="Static" />
<asp:Button runat="server" ID="button2" Text="Second"
OnClick="button2_OnClick" style="display:none" ClientIDMode="Static" />
顺便说一句,这暗示了ASP.NET Winforms的主要问题-欺骗开发人员以为Web是一个连接的环境。
默认情况下,当您单击<asp:Button />
元素时实际发生的是调用了回发。即您的浏览器将请求发送到服务器以请求新页面。它发送一个称为ViewState的东西,这是服务器如何知道您已完成什么以及要呈现什么的方式。没有这样处理的“事件”。
我正在尝试不同的方法来使这项工作成功,但是没有成功。我正在尝试将mootools与asp.net应用程序集成。我只想用它为我的网站添加一些效果。我也使用更新面板,scriptmanager,因为不希望有完整的回发。在控制台上引发错误TypeError:clientID.startsWith不是函数,并且在进行更新时brwoser reset...。这是整个代…
Div单击与单选按钮相同吗? - php有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date…
将python scikit学习模型导出到pmml - python我想将python scikit-learn模型导出到PMML。哪个python软件包最合适?我阅读了有关Augustus的内容,但是我无法使用scikit-learn模型找到任何示例。 python大神给出的解决方案 SkLearn2PMML是 JPMML-SkLearn命令行应用程序周围的薄包装。有关受支持的Scikit-Learn Estimator和…
如何使用PHP从动态输入字段捕获数组值? - javascript我正在编写一个在线时间跟踪网页,允许用户将学习时间输入该系统。用户将首先输入名称,然后根据日期输入学习时间。一天中可能会有多个学习时间。以下是我第一页的编码,<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"…
SOAPFaultException部署在Tomcat上时,但在GlassFish中工作正常 - java朋友们,我一直在尝试很多,阅读了很多论坛,但无法理解为什么出现此问题。我使用契约优先方法创建了一个Jax-WS WebService。创建WSDL和XSD,然后使用wsimport工具生成其余工件,为SEI提供实现。将WebService应用程序部署到Eclipse Helios中的GlassFish(Glassfish适配器和Eclipse中安装的插件)。…