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();
    }

MenuButton 是一个用户控件

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

编辑:这是来自 ClienClick 的 ShowPrintStickersPopUp JS。如果选中了任何复选框,它只会检查网格视图

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;
    }
4

1 回答 1

0

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

于 2013-02-25T18:13:39.483 回答