• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

HTML Tabelle an richtige Position führen

Todi

Neues Mitglied
Hallo Forum,

der Titel hört sich ein wenig komisch an, aber ich weiß nicht unter welchem Thema bzw. Namen mein Problem zu finden ist.

Und zwar entwickel ich gerade in HTML (mit JSP & Servlets) eine Web-Anwendung für ein Mobile Computer.
Ich zeige eine Tabelle an, die nach x Elementen eine Scrollpane bekommt.

Nun möchte ich folgendes:

der Benutzer scannt Barcodes ein, die sich bereits in der Tabelle befinden, ich gleiche diese ab, wenn der Barcode in der Tabelle vorhanden ist, setze ich eine Checkbox auf "checked" andernfalls passiert nichts.

Die Tabelle wird jedes mal wenn ich in die JSP komme neu erstellt (ich laufe eine Schleife mit einem Vector).

Nun möchte ich gerne, dass die Tabelle an die Stelle springt, wo sich zuletzt die checkbox verändert hat.
Wenn ich Beispiels weiße 30 Elemente in der Tabelle habe und nur 10 angezeigt werden, könnten Elemente 11-30 sich verändern ohne dass der Benutzer eine Veränderung sieht! (Die aber im "unsichtbaren" Bereich stattgefunden hat).

Hoffe jemand versteht mein Problem und kann mir helfen.

durch den Mobile Computer bin ich in meinen Fähigkeiten begrenzt.

Danke

EDIT: Das hab ich gerade schon mal gefunden: zumindest eine Idee (in die Richtung)


function toPosition(){ setTimeout("document.getElementById('div1').scrollTop=185",1); } window.onload=toPosition;

also ich habe inzwischen mein Servlet soweit erweitert, dass ich nun einen Zahlenwert in meine JSP übergeben bekomme, die mir die Stelle in der Tabelle (Spalte) angibt, in der gerade das Element anklickt wurde.
Die Frage ist nun noch, wie springe ich dahin!

meine Java-Skript Funktion bekommt bereits den Wert, die Frage ist "ScrollTop=" was besagt der Wert? Kann ich irgendwie sagen springe zu Spalte XY?
 
Zuletzt bearbeitet:
Willkommen im Forum.

Hoffe jemand versteht mein Problem und kann mir helfen.

Ehrlich gesagt, ich verstehe es leider nicht.

Beziehungsweise verstehe ich nicht, was die zahlreichen Informationen mit deinem konkreten Problem zu tun haben.

Und zwar entwickel ich gerade in HTML (mit JSP & Servlets) eine Web-Anwendung für ein Mobile Computer.
Ich zeige eine Tabelle an, die nach x Elementen eine Scrollpane bekommt.

Was ist ein „Mobile Computer“? Vielleicht liege ich da total falsch, aber in meiner Wahrnehmung schließt das auch einen Laptop mit ein.

Was bedeutet „nach x Elementen eine Scrollpane bekommt”? Scroll pane ist klar, aber wie soll eine Tabelle nach einer bestimmten Anzahl an Elementen eine bekommen? Meinst du, dass das umgebende Element eine bestimmte Höhe hat und dort unter Umständen eine Scrollbar eingeblendet wird?

Die Tabelle wird jedes mal wenn ich in die JSP komme neu erstellt (ich laufe eine Schleife mit einem Vector).

Das klingt so, als würdest du deine Laufschuhe anziehen. :) Das ist für das Problem aber glaube ich nicht so relevant.

Nun möchte ich gerne, dass die Tabelle an die Stelle springt, wo sich zuletzt die checkbox verändert hat.

„Springen“ kannst du beispielsweise, indem du eine konkrete ID, die im HTML-Code vergeben wurde, als Fragment-Identifier an den URL anhängst: [noparse]http:/www.example.org/test.jsp#meine-id[/noparse]. Der Client sollte nun beim Aufruf der Seite bis zu dieser ID scrollen.

Das heißt, du müsstest für jede Tabellenzeile eine ID definieren (<tr id="row12">…) und nach einer Änderung den Client auf einen URL mit Fragment-Identifier weiterleiten.

durch den Mobile Computer bin ich in meinen Fähigkeiten begrenzt.

Inwiefern das eine Rolle spielt, kann ich leider nicht sagen.

Dein Edit habe ich leider auch nicht so recht verstanden. Vor allem der letzte Satz ergibt für mich keinen Sinn.

meine Java-Skript Funktion bekommt bereits den Wert, die Frage ist "ScrollTop=" was besagt der Wert? Kann ich irgendwie sagen springe zu Spalte XY?

Die eine Angabe ist vertikal, die andere horizontal.
 
Zuletzt bearbeitet:
Morgen,

also Stück für Stück,

ein Mobile Computer ist in meinem Fall ein Pocket PC. (ein MC55)

Die Tabelle ist in der Höhe sowie in der Breite festgesetzt und auf "overflow: auto;" gestellt, das heißt wenn die Größe erreicht wurde entsteht eine Scrollpane.

zur letzten Angabe, habe da eine Java Script Funktion geschrieben, die sowas in die Richtung tun soll:

function toPosition(i){
if (i != null){
setTimeout("document.getElementById('div1').scrollTop=i",1);
}
}

dieser Funktion übergebe ich zur Zeit einen int value, der mit die Spalte angibt wo sich zuletzt das Element verändert hat.
An diese Spalte soll im Optimalfall gesprungen werden. (Falls diese also in dem Scroll-Bereich liegt soll bis zu diesem gescrollt werden).

Ich werde deine Alternative mal ausprobieren. Danke schon mal.
 
Hallo,

also ich habe gerade mal versucht eine ID-Anzufügen, ich lande jedoch auf eine Tomcat Fehlerseite (404).

Versucht habe ich folgendes: view = request.getRequestDispatcher("/auslagern.jsp#" + test);
Habe gerade schon im Internet vergebens gesucht wie ich anderweitig eine ID als Anker mitgeben kann, habe dazu aber bisher noch nichts gefunden.

EDIT:

Ich habe gerade gelesen, dass sowas nicht in einer JSP geht, da die Seite erst komplett aufgebaut sein muss, bevor der Ankerpunkt gesetzt werden kann. Mein Weg führt im Moment zu folgender Methode: Response.sendRedirect() ...
Aber mit dem Begriff "Anker" ist man gar nicht mehr so falsch. Danke dir.
 
Ich habe es endlich geschafft ;)

also die Java Script Funktion sieht folgendermaßen aus:

function toPosition(i){
if (i != null){
var el = document.getElementById(i);
el.scrollIntoView(true);
}
}

in meiner Tabelle gebe ich dann als ID den Laufwert mit..

<tr id="<%=i%>">

nachdem die Tabelle dann erstellt werden habe ich eine andere Funktion die einem Feld erneut den Focus setzt (damit direkt wieder eingescannt werden kann):
Da rufe ich dann folgendermaßen meine Java Script Funktion auf, die an die Richtige Position springt:

onfocus="toPosition(<%=test%>)"

test ist die Spalte (int Wert) an welcher zuletzt eine Veränderung stattgefunden hat.

Mensch was bin ich froh, war schon kurz davor abzubrechen.
Hier die Seite wo ich die Idee gefunden habe:

https://developer.mozilla.org/en/DOM/element.scrollIntoView
 
Zurück
Oben