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 はユーザーコントロールです

ページ全体のリロードを無効にする方法はありますか?

編集: これは、ClientClick の 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 オブジェクトを追加したことを覚えていますか? UpdatePanels に関連する多くの問題は、追加されていないことに関連しています。

于 2013-02-25T18:13:39.483 に答える