asp.net按钮导致两个帖子异步帖子后退

时间:2015-02-20 07:41:37

标签: javascript c# asp.net

此按钮导致两个回发。

<asp:UpdatePanel ID="asdd" runat="server" UpdateMode="Conditional">
                                    <ContentTemplate>
                                        <asp:ImageButton ID="imgbtnNew" class="imgbtnNew" runat="server" CausesValidation="false"
                                            ImageUrl="~/Administrative/images/fullpage.gif" OnClick="imgbtnNew_Click" />
                                    </ContentTemplate>
                                </asp:UpdatePanel>

此代码显示我如何检查此行为

function pageLoad()
    {
    alert("Page load");      
       var manager = Sys.WebForms.PageRequestManager.getInstance();      
       manager.add_beginRequest(OnBeginRequest);
       manager.add_endRequest(OnEndRequest);
    }
    function OnBeginRequest(sender, args)
    {

      var postBackElement = args.get_postBackElement();
      alert("Begin" + postBackElement.id);          
   }
   function OnEndRequest(sender, args)
    {
    alert("end req caled!");
      var postBackElement = args.get_postBackElement();
      if (postBackElement.className == 'imgbtnNew')  
      { 
     $get('upc1').style.display = "block"; 
      }
   }

另一个问题是,只有在第二次加载页面时单击按钮时才会发生此行为。它显示了开始和结束请求的单一警报,但第二次单击按钮时,它显示了两个开始请求警报,并且没有显示结束请求的警报,并且每次点击都会执行一次单击事件处理程序。因此,按钮第一次单击时按钮表现正常,但之后则没有。

1 个答案:

答案 0 :(得分:0)

最后我明白了。添加了endRequest和beginRequest处理程序,但没有从PageRequestManager实例中删除,这就是为什么一次又一次地调用开始请求的原因。 EndRequest处理程序未执行,因为我在OnEndRequest方法中使用get_postBackElement()引发了错误,因此请求未结束并且更新进度控件持续显示。