ASP:按钮里面的asp:超链接不会转到页在Internet Explorer
我有一个asp:按钮,是一个ASP内部:超链接。当你点击Firefox中的按钮时,它会转到由asp:超链接指定的正确url,但是如果你点击Internet Explorer中的按钮,它将保持在同一页面上。我只是用PostBackUrl属性上的按钮来解决问题,但这里是代码的一个例子:ASP:按钮里面的asp:超链接不会转到页在Internet Explorer
<asp:Hyperlink ID="hyp" runat="server" NavigateUrl="Page2.aspx">
<asp:Button ID="btn" runat="server" Text="Submit" /></asp:Hyperlink>
为什么在firefox上述工作,但不是IE浏览器?
你所做的不是很正确。
只需添加按钮,并在其单击处理程序做:
Response.Redirect("Page2.aspx");
或者,你可以写一行JavaScript代码:
<input type="button" value="Text" onclick="location='Page2.aspx'" />
你的按钮被执行在同一页上回发。如果我是你,我会尝试在HTML工具箱中使用标准按钮,而不是ASP.NET按钮。
编辑:我会更强烈建议您消除按钮控制和适当的造型超链接,或消除双方并使用hyperlinkbutton控制来代替,而有其显示属性设置为显示为一个按钮。
为什么它工作在Firefox,而不是IE单一的控制? – Xaisoft 2009-03-02 17:53:16
是否有一个理由,为什么你正在使用内部按钮超链接?根据您正在尝试才达到我将只使用一个按钮或一个LinkButton设计,然后做一个重定向你的逻辑后的代码隐藏
<asp:Button runat='server' id='button1' Text='Click Me' Click='button1_Click' />
<asp:LinkButton runat='server' id='linkbutton1' Text='Click Me' Click='button1_Click' />
代码隐藏
protected void button1_Click(object sender, EventArgs e) {
// some logic
Response.Redirect("Page2.aspx");
}
火狐vs Internet Explorer
由于事件在b和b之间冒泡/传播的方式,我怀疑您的Firefox和Internet Explorer之间存在差异rowsers。如果你想取消事件的传播,你需要在你的按钮点击事件处理程序(在javascript中)包含对event.preventDefault()或event.stopPropagation()的调用?
我会用一个<asp:LinkButton CssClass="myButton" OnClick="Redirect" />
然后CSS样式它,你怎么想它的外观和代码隐藏处理功能。演示,标记和功能的
protected void Redirect(object sender, EventArgs e)
{
// do something
}
三通分离 - 在我看来去
为什么你有按钮的方式吗? – 2009-03-02 17:51:44
我会说你真的想询问如何风格的超级链接为一个按钮 – eglasius 2009-03-02 17:53:58
我造型的按钮,但我的问题是为什么在firefox上述工作,但不是在IE浏览器。 – Xaisoft 2009-03-02 17:59:05