2016-02-16 138 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