Ich habe eine Gridview-Schaltfläche, die ich programmgesteuert erstellt habe und ich möchte ein Update-Panel auf der Clientseite mit den gesendeten Daten laden. Ich habe ein verstecktes Wertfeld, das seine Daten auf den Klick der Gridview-Schaltfläche erhält und die Dropdown-Liste in meinem Updatepanel hängt von diesem Wert ab.Wie kann ich ein Update-Panel onclient-Seite mit Javascript neu laden?
Antwort
beim Aufruf __doPostBack
direkt arbeiten, es ist keine perfekte Lösung, weil der Name Diese Funktion ist streng genommen ein Implementierungsdetail des .NET-Frameworks.
Eine bessere Lösung ist die Verwendung ClientScriptManager.GetPostBackEventReference
, die Ihnen eine widerstandsfähigere Schnittstelle zur gleichen Funktionalität bietet. Beachten Sie, dass GetPostBackEventReference
und GetCallBackEventReference
nicht identisch sind - das erstere verursacht einen Seitenneuladevorgang (teilweise oder vollständig, abhängig davon, wie Ihre UpdatePanels eingerichtet sind), während letzteres nicht funktioniert.
verwenden wir die __doPostBack() -Methode, die eine Postbacks simuliert und bewirkt, dass die Update
__doPostBack('controlName','');
aufzufrischen Vergessen Sie nicht, dass die Steuer Name ist es HTML-ID ist (was gut Dollar usw. enthalten können) und nicht nur es ist ASP.NET ID.
Soweit ich weiß, Sie entweder diese Methode aufrufen kann und in dem verborgenen Wertfeld passieren, oder div, dass es in ist.
ich habe versucht, es wie dieses __doPostBack zu nennen ('<% = Upd atePanel1.ClientID%> ',' '); Wie kann man die Methode aufrufen? – Eric
-1: Aufruf von __doPostBack direkt ist eine schlechte Übung. –
Ich weiß, nicht jeder mag _doPostBack, aber bitte erklären Sie, warum es eine schlechte Übung ist. Es ist gut akzeptiert und weit verbreitet und all die Nachteile, die damit verbunden sind, wie das Potential für _doPostBack, sind veraltet, sind unbegründet. – tjmoore
Der einfachste Weg, dies zu tun, ist __doPostBack von Client-Seite aufrufen.
Auf Seite Button1_onclick Methode Client ruft:
__doPostBack('<%=UpdatePanel1.ClientID %>','Refresh:0,1,2'); //refresh update panel
Auf Seite hinter den folgenden Ereignishandler hinzufügen, den Post zurück Anruf zu erfassen:
protected void UpdatePanel1_Load(object sender, EventArgs e)
{
string arg = Request.Form["__EVENTARGUMENT"];
if (string.IsNullOrEmpty(arg)) return;
if (arg.StartWith("Refresh")
{
//parse data first then do your thing here...
}
}
Und natürlich nicht vergessen Draht Ereignis auf das obige Verfahren:
protected void Page_Init(object sender, EventArgs e)
{
UpdatePanel1.Load += new EventHandler(UpdatePanel1_Load);
}
- 1. Wie kann ich ein Skript in IRB neu laden?
- 2. ASP.NET UpdatePanel Javascript Rückruf
- 3. JavaScript Seite neu laden Skript
- 4. Wie kann ich automatisch Aufgabenmodule mit Sellerie-Daemon neu laden?
- 5. Wie kann ich TTLaucherView mit neuen Elementen neu laden?
- 6. Ajax "Laden" -Symbol mit UpdatePanel Postbacks
- 7. Javascript - Seite mit anderem QueryString neu laden
- 8. Wie funktioniert ein UpdatePanel?
- 9. ASP.NET - UpdatePanel und JavaScript
- 10. Javascript Konflikte UpdatePanel
- 11. Wie erzwinge ein WebImageView neu zu laden?
- 12. Ein Fragment-Status neu laden
- 13. Wie kann ich nur die Sammlungsansichtszellen neu laden?
- 14. Ein Pivot neu laden jqGrid
- 15. Wie kann ReCaptcha mit JavaScript neu geladen werden?
- 16. Wie man ein Formular "neu laden"?
- 17. Wie kann ich eine Tab-Ansicht aufrufen/neu laden?
- 18. Javascript speichern, löschen und neu laden Eingabewert
- 19. Wie kann ich Rails zwingen, application.js neu zu laden?
- 20. Wie kann ich eine Seite ohne POSTDATA-Warnung in Javascript neu laden?
- 21. Wie kann ich ein Drop-Down-Element mit Javascript
- 22. jQuery/Javascript - aktuelle Seite mit angehängtem Querystring neu laden?
- 23. Kann ich eine Javascript-Funktion mit Excel VBA neu schreiben?
- 24. Kann ich ein gif mit CSS (kein JS) neu starten?
- 25. ASP.Net - Javascript in AJAX UpdatePanel
- 26. Wie neu laden/aktualisieren mit infinite-scroll
- 27. CSS-Stylesheets neu laden, ohne die Seite neu zu laden?
- 28. Wie ein PHP-Datenbankabfrage zwingen, alle 5s neu zu laden, ohne Seite neu zu laden
- 29. Wie kann ich ein Menü oder irgendetwas auf Opera Mini Dropdown ohne Seite neu laden?
- 30. Wie kann ich ein JavaScript-Dialogfeld mit Knockout binden?
Ich bin mir nicht sicher, wie ich das verstehe. das war mein Versuch: btnedit.OnClientClick = ClientScript.GetCallbackEventReference (UpdatePanel1, "", "", "") & String.Format ("openModal ('{0}', '" & GridView1.Rows (i) .Cells (0) .Text & "'); return false; ", hidden.ClientID) Ich bin nicht sicher, was ich als Parameter eingeben soll. – Eric
Ich habe meine Antwort bearbeitet, um darauf hinzuweisen, dass Sie wahrscheinlich ein Postback und keinen Rückruf wünschen –
Ich bin etwas verwirrt über das, was Sie versuchen zu tun - tut der Benutzer etwas mit dem Ergebnis von openModal(), und es ist, nachdem sie getan haben, dass die Listbox neu binden soll? –