2016-02-16 67 views
1

我有一個母版頁,並在此頁__doPostBack不會觸發回發。但我有另一個母版頁,__doPostBack的作品,似乎一切都與這個其他母版頁相同,但__doPostBack不起作用畢竟...__doPostBack不起作用

這可能是什麼原因?

<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="xx.master.vb" Inherits="MyProject.xx" %> 

<asp:Button type="button" ID="btnSwitchLanguage" Style="display: none" runat="server" /> 

__doPostBack("<%= btnSwitchLanguage.UniqueID %>", lang_id); 


Private Sub btnSwitchLanguage_Click(sender As Object, e As EventArgs) Handles btnSwitchLanguage.Click 
    'Do Something 
End Sub 
+0

你試過'Page.GetPostBackEventReference(btnSwitchLanguage)'而不是? – SmartDev

+0

實際上在這個頁面上沒有一個回發作品..它甚至不刷新頁面。 – jackjop

回答

0

這太奇怪了,但我解決了這個問題。

這裏是原因:

在項目中,我們覆蓋__doPostBack函數,我沒有注意到它。但在另一個母版頁中,它被覆蓋就好了,在我所說的那個不是。

在其他母版頁中__doPostBack FUNC會變成這個樣子:

__doPostBack(Param1, Param2) 
{ 
    var theform; 
    if (window.navigator.appName.toLowerCase().indexOf('netscape') > -1) 
    { 
     theform = document.forms['aspnet… 

但在主我處理:

__doPostBack() 
{ 
    return; 
} 

這很奇怪,因爲JavaScript的順序是一樣!

無論如何,我阻止__doPostBack被重寫並解決問題。

1

你有沒有嘗試把代碼中的功能是這樣的:

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="postBack();return false;"/> 
     <script type="text/javascript" language="javascript"> 
      function postBack(){ 
       var btnName = $get("<%=Btn2.ClientID%>").name; 
       __doPostBack(btnName,""); 
      } 
     </script> 

希望這可以幫助您。

+0

Okey我正在嘗試 – jackjop

+0

你好@Francois,你寫的代碼沒有工作。但我解決了這個問題。如果你對此感到好奇,看看我的答案。雖然我感謝你的幫助。謝謝! – jackjop