2008-09-10 82 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