Update-Panel und löst aus der ein repeater-Steuerelement
Hi ich fand code, die der folgenden ähnlich online. Es scheint wirklich ideal für eine Schaltfläche begraben in einem repeater-Steuerelement zum auslösen eines vollen Zyklus zurück an den server.
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<%=DateTime.Now.ToString() %>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="HiddenButton" />
</Triggers>
</asp:UpdatePanel>
<!--Make a hidden button to treat as the postback trigger-->
<asp:Button ID="HiddenButton" runat="server" Style="display: none" Text="HiddenButton" />
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<!--when cick the button1, it will fire the hiddenButton-->
<asp:Button ID="Button1" Text="Trigger" CommandArgument='<%# Eval("Id") %>' OnClientClick="$get('HiddenButton').click();return false;"
runat="server" />
</ItemTemplate>
</asp:Repeater>
Verwendet es eine hiddenButton um dies zu erreichen, verknüpfen Sie das click-Ereignis von der original-Taste, um diese ein. Aber meine zusätzlich wurde die Einstellung der CommandArgument der Schaltfläche. Ich würde auch das set für die HiddenButton.
Kennt jemand einen Weg zu gehen über diese?
- Ich poste diese als Kommentar anstatt einer Antwort, als ich bin mir nicht sicher, ob es wird funktionieren, aber Sie könnten versuchen, dieser Vorschlag erstellen Sie Ihre eigenen attribute und Einstellung, die.
- Ich glaube nicht, dass du auch javaScript notwendig. Entfernen HiddenButton und <Trigger> Wenn Sie auf “Button" , das updatepanel aktualisiert wird. Also meinst du eine benötigen Sie ein
AsyncPostBackTrigger
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste ich mag zu erklären, die
Disadvantage
mit derUpdate Panel
mit dem gleichen Beispiel von dir geposteten.Unten ist der Original-Code
Ausgabe
Zur Anzeige des 22 Zeichenkette, die Sie können überprüfen, wie viel Daten empfangen und zum server gesendet. Stell dir vor, folgenden
Database
mitUpdate Panel
und IhreGridView
ist inUpdate Panel
!!!!!!ViewState
Daten für jede Anforderung und mitGridView Inside the Update Panel
.Beide der oben genannten Techniken am schlimmsten sind nach meiner Verständnis.
Nun werde ich beschreiben Sie
Page Methods
Seite Methode über Update-panel
Page Methods
ermöglichenASP.NET AJAX
Seiten direkt ausführenPage’s Static Methods
mitJSON (JavaScript Object Notation)
. Statt der Entsendung zurück und dannreceiving HTML markup
vollständig zu ersetzen unsereUpdatePanel’s contents
können wir eineWeb Method
auf Anfrage nur die information, dass wir interessiert sind.Beispielcode
Ausgabe
Hoffe, das verdeutlicht den Unterschied der Nutzung.
Antwort auf die ursprüngliche Abfrage
Müssen Sie sich registrieren, die
ItemDataBound
Veranstaltung der untenRepeater
und folgenden code verwenden, für den es.Code Hinter
JavaScript
//Alternative
Referenz & Hier
Ihre HiddenButton control ist ein server-Steuerelement, aber Sie versuchen, es in JQuery verwenden es ASP.Net ID,
Einen schnellen Weg, um es zu beheben ist, um eine separate Funktion,
und ändern Sie Ihren button-code ,
In code-hinter, - repeater, der das ItemDataBound-Ereignis, finden Sie die Schaltfläche und HiddenControl und set Button1 ' s OnClientClick-Eigenschaft,