/ / ASP.NET (Webforms): Verwendung mit MINIMAL-Serversteuerelementen und Ersetzen mit JQUERY - asp.net, jquery, webforms, servercontrols

ASP.NET (Webforms): Verwendung mit MINIMAL-Serversteuerelementen und Ersetzen durch JQUERY? - asp.net, jquery, webforms, servercontrols

Ich arbeite derzeit mit ASP.NET und die Person, die das Formular entworfen hat, haben alle Serversteuerelemente für Dinge wie TextBoxes und Dropdowns usw. verwendet, wenn sie wirklich keine Postbacks bereitstellen. Einige der Dropdown- und Textfelder sind Werte, die ich brauche nur In jQuery gibt es, soweit ich sehen kann, keine Nachteile, diese Steuerelemente zu verbergen Standard HTML-Steuerelemente statt ASP.NET-Serversteuerelemente?

Ich nehme an, ich muss meine GetDataGrid-Schaltfläche weiterhin als Serversteuerelement verwenden, da ich sie benötigen werde postback (und empfangen Sie PageLoad - Ereignisse usw. - alle asp.net - Ereignisse), um die Rasteransicht? Oder wäre es möglich, das GridView (ASP.NET-Serversteuerelement) von einer Webmethode zu verwenden und über Jquery aufzurufen?

Natürlich müsste ich in meiner Webmethode die Instanz des gridview hinzufügen, um die Datenquelle hinzuzufügen - aber ich sehe nicht, wie dies möglich wäre, ohne in den ASP.NET-Ereignissen zu sein - oder habe ich vielleicht etwas falsch gemacht?

Die andere Sache, an die ich dachte, war die VeränderungGetGridView-Schaltfläche zu einem Standard-HTML-Code und Aufrufen des JavaScript-Postbacks vom Client-Click-Ereignis? Auf diese Weise würde es ein echtes Postback sein und ich würde in Pageload landen.

Wenn ich alles in die Tat umsetze, möchte ich nicht das GridView asp.net-Steuerelement ändern, da es auch als asp.net-Serversteuerelement funktioniert.

Ich erinnere mich an ein verfügbares Dokument"Wie verwende ich asp.net-Webforms ohne Serversteuerelemente", aber ich kann es nicht finden. Ich nehme an, Webforms wie asp.net MVC zu verwenden - aber ich kann das Projekt nicht in MVC ändern - es liegt außerhalb meiner Kontrolle.

Ich würde mich sehr freuen, wenn Sie uns Feedback dazu oder Kommentare dazu hören.

Ich finde, dass ASP.NET-Webformulare eine Menge Code-Geruch in Seiten einfügen - ich verwende .NET 3.5, also ist ein großer Teil der Ausgabe mit Tabellen usw. ...

Antworten:

0 für die Antwort № 1

Einige Gedanken...

Die GridView kann nicht in einer WebMethod erstellt werdenSelbst wenn es eine Möglichkeit gibt, dies zu erreichen, ist es besser, mit einem echten Client-seitigen Raster zu beginnen. Da dies keine Option ist, glaube ich nicht, dass es zu viel Sinn macht, einen großen Wert zu erzielen Änderungen an Ihren vorhandenen Seiten.

Sichtzustand

Wenn Sie die Textfelder, Schaltflächen usw. in HTML-Versionen umwandeln, gewinnen Sie ein wenig an reduzierter Viewstate-Größe, erhöhen jedoch die Komplexität der Interaktion mit der Seite. Du kannst hinzufügen runat="server" HTML-Steuerelemente, die Ihnen die Kontrolle über das Rendern geben und weiterhin Zugriff auf das Steuerelement auf der Serverseite haben.

.Net 4 gibt Ihnen weit mehr Kontrolle über Viewstate, aber in 3.5 ist es leider nicht so einfach.

Die GridViews

Sie könnten die GridViews in einwickeln UpdatePanels. Dies ist eine "günstige" Möglichkeit, Ihren Seiten etwas Interaktivität zu verleihen, auch wenn Sie dadurch nicht an Leistung gewinnen.

Es ist auch immer noch möglich, den Gridview mit jQuery auf der Clientseite zu manipulieren. Es gibt viele Tutorials, Blogbeiträge usw., die erklären, wie dies im Internet gemacht wird.

MVC mit Webforms

Es ist auch möglich, ASP.Net MVC mit Webforms auf derselben Website zu mischen. Es klingt, als kenne man sich mit MVC aus. Vielleicht möchten Sie diesen Ansatz für neue Seiten in Betracht ziehen. Hier "s Ein Blogbeitrag, der erklärt, wie das geht

Aktualisieren: Hier "s Ein neuerer Artikel von Scott Hanselman zur Verwendung von MVC mit einer vorhandenen Webforms-Anwendung.


1 für die Antwort № 2

Wenn du benutzt Request.Form ["..."] Dann können Sie die Informationen erhalten, die in Standard-HTML-Eingabefeldern ausgefüllt wurden.

Anstatt das GridView-Steuerelement weiterhin zu verwenden, schlage ich vor, einen der beiden anzusehen jqGrid oder das Neue Template-System, das Microsoft für jQuery implementiert hat (derzeit ein Plugin, aber voraussichtlich Teil von jQuery ab Version 1.5). Diese können gebunden werden Json die von einem webmethod- oder pagemethod-Aufruf abgerufen werden kann, um die Vorlage mit Daten zu füllen.


1 für die Antwort № 3

Ich glaube auch nicht, dass es von asp.net (Code hinter) möglich ist, Werte eines html> -Controllers zu erhalten, ohne dass es runat = server hat.

Verwenden Sie Webmethoden. Legen Sie ein Clientereignis (z. B. "onchange") für das HTML-Steuerelement fest. Wenn das Ereignis ausgelöst wird, können Sie mit der Javascript-Funktion PageMethods verwenden, um Ihre Daten an den Code dahinter zu senden.