2008-09-10 79 views
3

__doPostBack在firefox 3中不工作(未检查2)。一切工作在IE 6 & 7伟大,它甚至可以在Chrome?__doPostBack在firefox中不工作

这是一个简单的ASP:LinkBut​​ton的使用onclick事件

<asp:LinkButton ID="DeleteAllPicturesLinkButton" Enabled="False" OnClientClick="javascript:return confirm('Are you sure you want to delete all pictures? \n This action cannot be undone.');" OnClick="DeletePictureLinkButton_Click" CommandName="DeleteAll" CssClass="button" runat="server"> 

JavaScript的confirm被解雇,所以我知道的JavaScript工作,它的specirically的__doPostBack事件。页面上还有很多事情要做,只是不知道它是否可以发布整个页面。

我启用页面加载事件的控件。

任何想法?


我希望这是做到这一点的正确方法,但我找到了答案。我想我会把它放在这里,而不是在一个计算器“答案”

似乎它与嵌套ajax工具包UpdatePanel有关。当我移除顶层面板时,它被修复了。

希望这有助于其他人有同样的问题。我仍然不知道具体是什么导致了这个问题,但那对我来说就是解决方案。

+0

你应该添加这个答案,然后“接受”你自己的答案。 – 2008-09-22 04:27:05

回答

5

检查您的用户代理字符串。同样的事情发生在我身上一次,我意识到这是因为我测试了一些页面为“googlebot”。生成的JavaScript取决于了解用户代理是什么。

http://support.mozilla.com/tiki-view_forum_thread.php?locale=tr&comments_parentId=160492&forumId=1

要你的用户代理字符串型的复位:配置到地址栏,然后按回车。这带来了一个偏好列表。输入general.useragent到过滤器框中,这应该显示一些首选项(可能是其中的4个)。如果任何有身份的用户组,对偏好单击鼠标右键并选择重置

+0

您的链接,http://support.mozilla.com/tiki-view_forum_thread.php?locale=tr&comments_parentId=160492&forumId=1: ,现在返回未找到的页面。 – 2013-10-01 18:31:08

+0

此方法不适用于我,我的代理字符串在Chrome中可以正常工作。 – dlopezgonzalez 2014-05-21 08:18:09

1

是因为你在做返回确认吗?好像返回语句应该阻止其他代码被触发。我会认为如果声明将工作

if (!confirm(...)) { return false; } _doPostBack(...); 

你可以发布所有的js代码在链接的OnClick?

编辑:啊哈,忘记了链接按钮发出这样的代码

<a href="javascript:__doPostBack()" onclick="return confirm()" /> 
0

不管用不用的OnClientClick事件仍然不起作用。

_doPostBack事件是.NET生成的自动生成的JavaScript。

function __doPostBack(eventTarget, eventArgument) { 

    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 

     theForm.__EVENTTARGET.value = eventTarget; 

     theForm.__EVENTARGUMENT.value = eventArgument; 

     theForm.submit(); 

    } 

} 

* The & 95;是下划线,似乎是stackoverflow代码块格式的问题。

+0

不,我的意思是发布 2008-09-10 21:45:33

0

现在我想到了,正如我上次编辑中指出的那样,您希望删除javascript:在客户端上单击属性。这是不需要的,因为onclick事件就是javascript。尝试一下,看看是否有效。

1

你正在处理PageLoad事件吗?如果是这样,请尝试以下

if (!isPostBack) 
{ 
    //do something 
} 
else if (Request.Form["__EVENTTARGET"].ToLower().IndexOf("myevent") >= 0) 
{ 
    //call appropriate function. 
} 

检查,如果你得到一个电话这种方式,如果是的话,那么也许该事件不会有线和显式调用nedes。

1

你对“Enabled ='false'”期待什么?

1

我在某些网络表单上遇到过萤火虫的问题,网络分析器可以通过回发进行一些操作。

0

似乎它与嵌套ajax工具包UpdatePanel有关。当我移除顶层面板时,它被修复了。

希望这有助于其他人有同样的问题。

0

我在一个web应用程序我工作过此相同的问题,我试图解决它几个小时。

最终,我做了一个新的webform,放下了一个linkbutton,它完美的工作!

然后我发现了以下问题:

...

我切换为以下,并立即固定: ...

IE没有问题两种方式(即我注意到了)。

3

我在Firefox中遇到了同样的问题(__doPostBack无法正常工作) - 导致浪费时间。问题原来是HTML。如果你使用HTML这样的:

<input type="button" id="yourButton" onclick="doSomethingThenPostBack();" value="Post" /> 

其中 “doSomethingThenPostBack” 仅仅是一个JavaScript方法调用__doPostBack,形式不会后在Firefox。它在IE和Chrome的回传。为了解决这个问题,请确保您的HTML是:

<input type="submit" id="yourButton" ... 

的关键是属性。它必须是“提交”在Firefox中__doPostBack工作。其他浏览器似乎并不在乎。希望这可以帮助任何碰到这个问题的人。

0

我有一个类似的问题。事实证明,Akamai正在修改用户代理字符串,因为正在应用不需要的设置。

这意味着某些.NET控件没有正确呈现__doPostBack代码。这个问题已被博客here

0

@Terrapin:你得到了这个完全正确的(对我来说,无论如何)。

我当时正在运行User Agent Switcher,并且无意中遗留了选中的Googlebot 2.1代理。

在Reporting Services 2008中,它导致实际呈现报告的iframe大约为300x200像素,而在Reporting Services 2008 R2中,错误控制台中正在抛出“__doPostBack undefined”错误。

切换回默认用户代理修复了我所有的问题。

0

我和Firefox有同样的问题。您可以使用jQuery .trigger()方法来触发对您的回发事件注册为点击操作的元素的点击操作,而不是使用__doPostBack()

例如,如果你在你的aspx页面有该元素:

<asp:Button runat="server" ID="btnMyPostback" OnClick="btnMyPostback_Click" CssClass="hide" ToolTip="Click here to submit this transaction." /> 

而在你的控制你的回发事件:

protected void btnMyPostback_Click(object sender, EventArgs e) 
{ 
    //do my postback stuff 
} 

你可以通过调用做回发:

$("#btnMyPostback").trigger("click"); 

这将导致Page_Load事件触发,如果你需要做一些事情在Page_Load