2013-02-25 65 views
0

我有一个带有更新面板的ASP.NET页面。 通常情况下,如果我使用更新面板,应该只有回发,但没有完整的页面重新加载。在更新面板中禁用页面重新加载

在我的情况下,当我点击一个按钮时,它总是会重新加载页面。虽然此按钮位于更新面板中。

我发现了什么:当我把

Response.End(); 

在Button_Click方法,没有重装。

我就在.aspx代码:

<asp:UpdatePanel ID="upUserDefault" runat="server"> 
     <Triggers> 
      <asp:PostBackTrigger ControlID="btnPrintSelectedArticles" /> 
     </Triggers> 
     <ContentTemplate> 

     <cc1:MenuButton runat="server" ID="btnPrintSelectedArticles" OnClientClick="return ShowPrintStickersPopUp();" ButtonText="Print" /> 

    </ContentTemplate> 
</asp:UpdatePanel> 

后面的代码:

页面加载:

btnPrintSelectedArticles.MenuButton_Click += btnPrintSelectedArticles_MenuButton_Click; 

方法:

void btnPrintSelectedArticles_MenuButton_Click(object sender, EventArgs e) 
    { 
     // Disables reload 
     Response.End(); 
    } 

菜单按钮是用户控制

任何想法如何禁用重新加载整个页面?

编辑: 这是来自ClienClick的ShowPrintStickersPopUp JS。它只是检查gridview是否有任何复选框检查

function ShowPrintStickersPopUp() { 
     var gridView = document.getElementById('<% =gvArticles.ClientID %>'); 

     //get all the control of the type INPUT in the base control. 
     var inputs = gridView.getElementsByTagName("input"); 

     for (var n = 0; n < inputs.length; ++n) { 
      if (inputs[n].type == 'checkbox' && inputs[n].checked) { 
       // If at least 1 checkbox is checked, open popup 
       window.open('PrintStickersPopUp.aspx', 'Print Stickers', 'width=700,height=550'); 
       return true; 
      } 
     } 

     return false; 
    } 
+0

您的ShowPrintStickersPopUp方法是什么样的?默认情况下,在UpdatePanel中使用按钮以及提供PostBackTrigger应该可以防止完整的页面回发,所以我认为ShowPrintStickersPopUp方法中可能会导致回发。 – 2013-02-25 17:52:00

+0

感谢您的回复,我添加了ShowPrintStickersPopUp JS! – Nagelfar 2013-02-25 17:56:04

+0

不知道我要说什么,但是您是否尝试在ShowPrintStickersPopUp中返回false而不是true? – snaplemouton 2013-02-25 18:00:18

回答

0

您的客户端方法看起来不错。你记得在页面上添加一个ScriptManager对象吗?许多与UpdatePanel相关的问题都与没有添加一个有关。

+0

如果他有Jscript它应该已经在