是否可以使用updateprogress刷新整个页面?

问题描述

我正在尝试在链接到UpdatePanel(AsyncPostBackTrigger)的页面中实现一个重新初始化按钮。当我单击按钮时,它处理一个UpdateProgress。

问题在于,由于重新初始化按钮与更新面板链接,因此无法重新初始化UpdatePanel之外的内容。

是否可以在不为整个页面添加UpdatePanel的情况下对UpdatePanel外部的控件进行一些更改?在这种情况下,我想重新初始化UpdatePanel中包含的DropDownList,Textbox和Repeater。

How the page is rendered

ASPX代码:

<body style="padding: 50px;">
    <form id="form1" runat="server">
        <asp:Label runat="server" ID="test"></asp:Label>
        <asp:HiddenField runat="server" ID="AllDemandsTypeHfi"></asp:HiddenField>
        <asp:ScriptManager runat="server" ID="ScriptManager"></asp:ScriptManager>
        <asp:Panel runat="server" CssClass="panel-page-title">Création de demande</asp:Panel>
        <asp:Panel runat="server" CssClass="panel-primary">
            <asp:Panel runat="server" CssClass="panel-heading">Configuration de la recherche</asp:Panel>
            <asp:Panel runat="server" CssClass="panel-body">
                <asp:Table runat="server">
                    <asp:TableRow ID="BankRow">
                        <asp:TableCell>
                                <asp:Label runat="server">Banque : </asp:Label>
                        </asp:TableCell>
                        <asp:TableCell>
                            <asp:DropDownList runat="server" ID="BankDdl" AutoPostBack="true" OnSelectedIndexChanged="BankDdl_SelectedIndexChanged"></asp:DropDownList>
                        </asp:TableCell>
                    </asp:TableRow>
                    <asp:TableRow>
                        <asp:TableCell>
                                <asp:Label runat="server">Famille : </asp:Label>
                        </asp:TableCell>
                        <asp:TableCell>
                            <asp:DropDownList runat="server" ID="FamilyDdl" AutoPostBack="true" OnSelectedIndexChanged="FamilyDdl_SelectedIndexChanged"></asp:DropDownList>
                        </asp:TableCell>
                    </asp:TableRow>
                    <asp:TableRow>
                        <asp:TableCell>
                                <asp:Label runat="server">Motif : </asp:Label>
                        </asp:TableCell>
                        <asp:TableCell>
                            <asp:DropDownList runat="server" ID="MotiveDdl" AutoPostBack="true" OnSelectedIndexChanged="MotiveDdl_SelectedIndexChanged"></asp:DropDownList>
                        </asp:TableCell>
                    </asp:TableRow>
                    <asp:TableRow>
                        <asp:TableCell>
                                <asp:Label runat="server">Sous-motif : </asp:Label>
                        </asp:TableCell>
                        <asp:TableCell>
                            <asp:DropDownList runat="server" ID="SubmotiveDdl" AutoPostBack="true" OnSelectedIndexChanged="SubmotiveDdl_SelectedIndexChanged"></asp:DropDownList>
                        </asp:TableCell>
                    </asp:TableRow>
                    <asp:TableRow>
                        <asp:TableCell>
                                <asp:Label runat="server">Mots-clés : </asp:Label>
                        </asp:TableCell>
                        <asp:TableCell>
                            <asp:TextBox runat="server" ID="KeywordsTbx" data-target="#modalSuggestions" data-toggle="modal"></asp:TextBox>
                            <div id="keywordsTbxSuggestions"></div>
                            <asp:HiddenField runat="server" ID="KeywordsSearchHfi"></asp:HiddenField>
                        </asp:TableCell>
                    </asp:TableRow>
                </asp:Table>
                <br />
                <asp:Button runat="server" ID="ResearchBtn" Text="Rechercher" OnClick="ResearchBtn_Click" />
                <asp:Button runat="server" ID="ReinitializeBtn" Text="Réinitialiser" OnClick="ReinitializeBtn_Click" />
            </asp:Panel>
        </asp:Panel>
        <br />
        <asp:UpdatePanel runat="server" ID="ResultsUpnl" ChildrenAsTriggers="true" UpdateMode="Conditional">
            <ContentTemplate>
                <asp:Panel runat="server" CssClass="panel-primary">
                    <asp:Panel runat="server" CssClass="panel-heading">Résultat de la recherche </asp:Panel>
                    <asp:Panel runat="server" CssClass="panel-body">
                        <asp:Label runat="server" ID="ResultsLb" Text="Veuillez sélectionner les critères de recherche,puis cliquer sur Rechercher."></asp:Label>
                        <asp:Repeater runat="server" ID="ResultsRpt">
                            <HeaderTemplate>
                                <asp:Label runat="server" Text="<b>Type de demande</b>"></asp:Label>
                                <table>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <asp:Panel runat="server">
                                    <asp:HyperLink runat="server" NavigateUrl='<%# Eval("Link") %>' Text='<%# Eval("Title") %>' Target="_blank"></asp:HyperLink>
                                </asp:Panel>
                            </ItemTemplate>
                            <FooterTemplate>
                                </table>
                            </FooterTemplate>
                        </asp:Repeater>
                    </asp:Panel>
                </asp:Panel>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ResearchBtn" EventName="Click" />
                <asp:AsyncPostBackTrigger ControlID="ReinitializeBtn" EventName="Click" />
            </Triggers>
        </asp:UpdatePanel>
        <asp:UpdateProgress ID="UppDemandsResult" runat="server" DisplayAfter="0">
            <ProgressTemplate>
                <div style="text-align: center;">
                    <table style="width: 100%;">
                        <tr>
                            <td>
                                <Loader:LoaderComponent ID="UcLoadingProgess" runat="server" />
                            </td>
                        </tr>
                    </table>
                </div>
            </ProgressTemplate>
        </asp:UpdateProgress>
    </form>
</body>

隐藏代码:

private void HandleReinitialization()
{
    this.ResultsLb.Text = DemandCreationConstants.ResearchDefaultText;
    this.familyDdlSelectedValue = string.Empty;
    this.motiveDdlSelectedValue = string.Empty;
    this.submotiveDdlSelectedValue = string.Empty;
    this.LoadFamilies(true);
    this.LoadMotives(false);
    this.LoadSubmotives(false);
    this.ResultsRpt.DataSource = null;
    this.ResultsRpt.DataBind();
    this.KeywordsSearchHfi.Value = string.Empty;
    this.KeywordsTbx.Text = string.Empty;
    LogServiceInstance.Debug("L'utilisateur " + UserSession.UserLogOn + " a réinitialisé la recherche.");
}

HandleReinitialization由事件ReinitializeBtn_Click 启动。

解决方法

如果正确理解,则需要创建UpdatePanel2并将任何控件添加到其中,然后在第一个UpdatePanel1的按钮Click()方法中调用 Update()方法。

UpdatePanel2.Update();

更新: 确保将UpdatePanel2的UpdateMode设置为“ Conditional”

    <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            // Your controls
        </ContentTemplate>
    </asp:UpdatePanel>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...