2016-05-05 11 views
0

Learning asp.net und Web Forms. Ich habe eine sehr lange Rasteransicht mit einer Bearbeitungsschaltfläche für jede Zeile. Benutzer klicken auf Bearbeiten, es wird ein Postback ausgeführt, dann wird eine andere Spalte zurückgegeben, die jetzt bearbeitet werden kann, und die Schaltfläche wurde in eine Aktualisierungs- und Löschschaltfläche geändert. Das Problem ist, wenn Sie auf Bearbeiten klicken und das Postback auftritt, werden Sie wieder an den Anfang der Seite gebracht. Wie kann ich es dahin zurückbringen, wo der Benutzer gerade war, oder zumindest zurück zu der Stelle, wo die einzige editierbare Zeile sichtbar ist (vorzugsweise in der Mitte der Ansicht, nicht oben)?Wie scrollen Sie nach dem Aktualisieren der Gridview-Zeile?

+0

Nehmen Sie es von jemandem, der zu MVC bummelte bewegen. Wenn Sie gerade den Lernprozess starten, LEARN MVC stattdessen. – dinotom

+0

Klingt, als ob du etwas Ajax brauchst. In Webformularen, die normalerweise mit einem ' implementiert werden, würde ich das untersuchen. – zgood

+0

MVC ist auf meiner To-Learn-Liste, aber ich arbeite mit mehreren älteren Entwicklern und wir haben 15 Jahre Anwendungen in ColdFusion, Classic ASP und WebForms, also muss ich diese zuerst in den Griff bekommen. Ich habe tatsächlich ein UpdatePanel versucht, aber ich konnte nicht die richtige Kombination von Dingen bekommen und sie in die richtige Reihenfolge bringen, wo es sogar kompilieren würde. Meine Kontrollen würden Fehler bekommen, die besagen, dass es kein solches Element gibt, wenn ich sie in der UP hatte. – user1766768

Antwort

0

Ein erster Schritt wäre MaintainScrollPositionOnPostback zu true und sehen, ob es funktioniert, wie Sie möchten. Sie können es auf der Seitenebene festgelegt:

<%@ Page MaintainScrollPositionOnPostback="true" ... %> 

oder auf Anwendungsebene in Web.config:

<system.web> 
    <pages maintainScrollPositionOnPostBack="true" ... /> 
    ... 
</system.web> 
+0

Funktioniert das auch bei zusammenklappbaren Panels wie dem im AjaxToolkit? Ich bin nur theoretisiert, dass, wenn die tatsächliche Länge der Seite variabel ist, abhängig davon, wie viele Panels zusammengeklappt sind oder nicht, es schwieriger wäre, Scroll-Position zu erkennen. Ich würde es einfach probieren, aber diese werden in der App von jemand anderem verwendet und ich bin der neue Typ und möchte mich lieber nicht einmischen, bis ich weiß, wovon ich rede. – user1766768

+0

Ich weiß es nicht; Sie können es uns sagen, nachdem Sie es versucht haben. Sicher wäre eine vollständige Seitenaktualisierung eine sauberere Lösung. Wie von zgood vorgeschlagen, können UpdatePanels in ASP.NET-WebForms verwendet werden, um dies zu erreichen. In Ihrem Fall müssten Sie das gesamte GridView in das UpdatePanel einfügen. – ConnorsFan

Verwandte Themen