web-dev-qa-db-de.com

Wie erzwinge ich eine vollständige Rückmeldung von einer Schaltfläche in einem UpdatePanel?

Wie erzwinge ich eine vollständige Rückmeldung von einer Schaltfläche in einem UpdatePanel?

67
André Pena

Sie können die Eigenschaft Triggers des UpdatePanel verwenden, um Aktionen zu registrieren, die einen vollständigen Postback auslösen.

Fügen Sie dieser Eigenschaft ein PostBackTrigger - Objekt hinzu, das die ControlID des Steuerelements enthält, das ein vollständiges Postback auslösen muss.

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
        ...
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="myFullPostBackControlID" />
    </Triggers>
</asp:UpdatePanel>
81
Thibault Falise

Einfach das hinzufügen, weil sonst niemand hat. Es ist möglich, dies in Code-behind in einer Codezeile ohne eine der oben genannten Methoden auszuführen. Einfach das in page_load einfügen:

Visual Basic

ScriptManager.GetCurrent(Me).RegisterPostBackControl(myButtonID)

C #

ScriptManager.GetCurrent(this).RegisterPostBackControl(myButtonID);
46
EvilDr

Von hier :

Verwenden Sie das PostBackTrigger-Steuerelement, um Steuerelemente in einem UpdatePanel zu aktivieren, um ein Postback zu verursachen, anstatt ein asynchrones Postback auszuführen.

 <Triggers>
    <asp:PostBackTrigger ControlID="controlID" />
 </Triggers>
12
Aseem Gautam

Ich hatte das gleiche Problem mit einem ImageButton in einem WebDataGrid.

Ich habe stattdessen die Linie von EvilDr in den preRender für das Webdatagrid eingefügt. Großartig gearbeitet

for (int i = 0; i < wdgMyData.Rows.Count; i++)
{
   ScriptManager.GetCurrent(this).RegisterPostBackControl((ImageButton)wdgMyData.Rows[i].Items[3].FindControl("btnDownloadExcel"));
}
0
Oystein

Es ist eine alte Frage, da ist auch ein etwas kniffliger Ansatz, wenn sich alles in update Panels befindet und Sie einen vollständigen Beitrag zurück machen möchten, damit Ihr Document.Ready -Code beim Klicken funktioniert.

1. Erstellen Sie eine Dummy-Schaltfläche außerhalb des Update-Bereichs und klicken Sie auf den Code hinter dem folgenden Code 

ScriptManager.RegisterStartupScript(Page, this.GetType(), "ResetDoc", "ResetDocumentReady();", true);

2. Definieren Sie die Funktion am Frontend wie folgt

function ResetDocumentReady() {
        $("[id$=DummyButton]").click();
    }

HINWEIS: Am besten verwenden Sie jedoch den Trigger, die Antwort, die von @Thibault Falise :) veröffentlicht wurde.

0
Ajmal Jamil