onClientRowSelection

BusinessServerPages; Erstellung von Webapplikationen.

onClientRowSelection

Postby Alva1590 » Mon Mar 29, 2004 9:05 am

Hallo zusammen,

ich habe auf einer meiner Seiten ein tableview-Element bei dem mehrere Einträge gewählt werden können. In diesem tableview-Element werden Daten angezeigt zu denen noch weiterführende Daten vorhanden sind, die aus verschiedenen Gründen in einem Popupfenster angezeigt werden sollen.

Der Klick auf den unter dem tableview-Element positionierten Button öffnet das Popupfenster und übergibt den Wert der Schlüsselspalte des gewählten Eintrags.

Am Anfang ist jedoch noch kein Eintrag selektiert und der Klick auf den Detail-Button liefert nicht das gewünschte Ergebnis. Ich dachte daher, dass ich den Button deaktiviert darstelle und erst dann aktiv schalte,wenn der Benutzer einen Eintrag im tableview-Element gewählt hatte.

Dazu wollte ich onClientRowSelection nutzen, allerdings kann ich dort nur TRUE oder FALSE eintragen, wo liegt denn da mein Denkfehler?

Wie kann ich, wenn es so nicht geht, das gewünschte Verhalten realisieren?

Ich suche eine Möglichkeit eine Funktion der Art
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. button.enabled = (tableview.gewählte_einträge > 1)
GeSHi ©
bei jedem Klick auf eine der checkboxen des tableview-Elements aufzurufen
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Melia1066 » Wed Mar 31, 2004 9:33 am

Servus,
so weit ich weiß, ist die methode onClientRowSelection dafür zuständig, für das ganze TableView die Zeilen auswählbar zu machen. Du bräuchtest eher beim event 'User klickt auf Zeile' eine Funktion die dir den Button disabled. Leider gibt es dazu keine doku. Da heißt es wohl oder übel tüffteln.

Wenn nicht, dann würd ich dir vorschlagen den button generell enabled zu lassen und dann bei der klickmethode von button erst mal prüfen, ob eine Zeile ausgewählt wurde. Und wenn nicht, dann dementsprechend eine Meldung bringt. Was meinst du?

Ich für meinen teil finde daß dieses GUI verhalten den User mehr leitet und unterstützt.

Gruß deDieter
Melia1066
..
..
 
Posts: 43
Joined: Tue Sep 23, 2003 1:30 pm

Postby Christian4831 » Wed Mar 31, 2004 1:05 pm

Hi,

ich würde es vielleicht so machen:
a) Server-seitiges handling
Da soweit ich weiss nach jeder Zeilenauswahl ein neuer Request erfolgt (bei onRowSelection), solltest du den Event abfangen und eine boolesche Page Variable setzen sobald mind. eine Zeile selektiert wurde. Ist diese gesetzt, kannst du den Button aktivieren.

b) Client-seitiges handling
Bei onClientRowSelection müsste es eigentlich auch funtionieren wenn du analog zu onRowSelection vorgehst - halt nur mit Javascript: Du setzt einfach eine Javascript variable. Das knifflige ist vielleicht nur, wie man per Javascript die Anzahl der selektierten Einträge bekommt. Vielleicht solltest du dir die HTML Laufzeitsourcen bei keinem selektierten und die Sourcen bei einem/mehreren selektierten anschauen und diese dann vergleichen...

Der Einfachheit halber würde ich a) zunächst bevorzugen, obwohl es aus Performancegründen nicht so schön es immer einen neuen Request zu senden...

Vielleicht solltest du aber nochmal im SAP SDN nachschauen. Vielleicht gibts dort irgendwo versteckt einen Artikel von den SAP WAS Leuten.

ciao,

Tim
Christian4831
..
..
 
Posts: 91
Joined: Mon Dec 02, 2002 7:33 pm


Return to BSP + BHTML

Who is online

Users browsing this forum: No registered users and 8 guests