Selektierte Zeile im View nach Aktion löschen

BusinessServerPages; Erstellung von Webapplikationen.

Selektierte Zeile im View nach Aktion löschen

Postby Manfred979 » Fri Jan 06, 2006 3:15 pm

Hallo,

wie kann ich, nach dem ich eine Aktion (button) auf der Website ausgeführt habe, meine selektierte Zeile löschen?

Ich habe einen Tableview mit

onRowSelection = "rowSelection"
selectionMode = "LINEEDIT"
selectedRowIndex = "<%= selectedrow %>"

definiert!

Ein "clear: selectedrow." bringt nicht den gewünschten Erfolg. Gibt es eine Methode dazu?

Danke und Gruß



Danke
Manfred979
.
.
 
Posts: 6
Joined: Fri Jan 06, 2006 3:15 pm

Postby Henriette5142 » Mon Jan 09, 2006 9:44 am

ich habe ein ähnliches problem, ist aber bei mir nicht so schwerwiegend. Ich würde als erstes versuchen direkt auf die selectedrow tabelle vom tv objekt zuzugreifen und evtl. zu initialisieren.
Henriette5142
..
..
 
Posts: 72
Joined: Wed Nov 30, 2005 12:15 pm

Postby Benno3225 » Mon Jan 09, 2006 10:26 am

Habe leider genau das selbe Problem und finde keine Lösung. Hab ein Multiselect und will die markierten Zeilen auf Knopfdruck entfernen... leider ohne Erfolg.

Wenn wär ne Lösung hat würde mich den Interessenten hierzu anschließen!

Mfg Milo
Benno3225
.
.
 
Posts: 5
Joined: Mon Jan 09, 2006 10:26 am

Postby Henriette5142 » Tue Jan 10, 2006 9:35 am

so. ich habe die lösung jetzt in einem sap beispiel bsp gefunden. sie heisst: sbspext_table und beinhaltet einen haufen nützlicher beispiele. in der TableViewMultiLineEdit.bsp bin ich dann auf folgenden Code gestossen.

Im TableView wird ein Attribut
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. selectedRowIndexTable = "<%= selectedRowIndexTable %>"
GeSHi ©
definiert.
Die Tabelle ist vom Std Typ:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. selectedRowIndexTable type int4table.
GeSHi ©


Nun wird im onCreate einfach folgender Code verwendet.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  field-symbols <i> like line of selectedRowIndexTable.
  2.  
  3.  append initial line to selectedRowIndexTable assigning <i>.
  4.  <i> = 1.
  5.  append initial line to selectedRowIndexTable assigning <i>.
  6.  <i> = 3.
  7.  append initial line to selectedRowIndexTable assigning <i>.
  8.  <i> = 4.
GeSHi ©

Diese stellen die vormarkierten Zeilen beim erstmaligen Aufrufen der Seite dar. Wenn man das ganze nun im onInitialization Teil verwendet und keine Zeilen angibt, bzw. den table einfach initialisiert, so wird nach jeder Aktion keine Zeile markiert sein. Ich probier das ganze gleich mal aus.[/code]
Henriette5142
..
..
 
Posts: 72
Joined: Wed Nov 30, 2005 12:15 pm

Postby Alva1590 » Wed Jan 11, 2006 2:52 pm

oder so:


DATA: n TYPE i.

CALL METHOD cl_htmlb_manager=>check_tableview_row
EXPORTING
mode = 'LINEEDIT'
row = n
request = request
id = tableview_id
check = space.

CLEAR: selectedrow.



:lol: :lol:

gruesse
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Benno3225 » Wed Jan 11, 2006 3:23 pm

mein onInput eventhandler sieht jetzt so aus:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  when 'del'.
  2.  
  3.  
  4. DATA: n TYPE i.
  5.  
  6. CALL METHOD cl_htmlb_manager=>check_tableview_row
  7. EXPORTING
  8. mode = 'LINEEDIT'
  9. row = n
  10. request = request
  11. id = 'TV_REP'
  12. check = space.
  13.  
  14. CLEAR: selectedrow.
  15.  
  16.  
GeSHi ©


"selectedrow unbekannt..."

wie muss ich das denn deklarieren?!
Benno3225
.
.
 
Posts: 5
Joined: Mon Jan 09, 2006 10:26 am

Postby Benno3225 » Wed Jan 11, 2006 3:59 pm

Gefüllt ist sie auch nicht! Wie bekomme ich den die markierten Zeilen eines TV im onInput Handler?

selectedrowindex ist immer <>0 :(
Benno3225
.
.
 
Posts: 5
Joined: Mon Jan 09, 2006 10:26 am

Postby Benno3225 » Wed Jan 11, 2006 4:29 pm

habe jetzt auch noch ein wenig im forum gestöbert und das gefunden:

OnInputProcessing Eventhandler:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. when del.
  2.  
  3.   DATA: tv      TYPE REF TO cl_htmlb_tableview,
  4.         tv_data TYPE REF TO cl_htmlb_event_tableview.
  5.  
  6.   data: test type int4.
  7.  
  8. *        create object tv.
  9.         tv_data = tv->data.
  10.         test = tv_data->prevselectedrowindextable.
  11.  
  12.  
GeSHi ©


auch das funktioniert nicht, "test ist nicht in prevselected... konvertierbar". debuggen lässt sich das auch nicht, "die seite kann nicht angezeigt werden" sobald man zu test = ... kommt.

ich bin am verzweifeln, hilfe bitte :([/code]
Benno3225
.
.
 
Posts: 5
Joined: Mon Jan 09, 2006 10:26 am

Postby Henriette5142 » Wed Jan 11, 2006 4:44 pm

ja dass das nicht konvertierbar ist, ist klar.
prevselectedrowindextable ist ein table der alle selektierten zeilen beinhalten. diese wird auch nur gefüllt wenn man multiline als selectionmode im tableview angegeben hat. ansonsten müsste test vom typ int4table sein.

hast du denn mein coding von oben überhaupt versucht:
attribut vom tableview setzen:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. selectedRowIndexTable = "<%= selectedRowIndexTable %>"
GeSHi ©
wobei das bei multiselect ein int4table ist und ansonsten int4.
dann einfach bei jeder initialization
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. clear selectedRowIndexTable.
GeSHi ©
Henriette5142
..
..
 
Posts: 72
Joined: Wed Nov 30, 2005 12:15 pm

Postby Benno3225 » Thu Jan 12, 2006 10:14 am

Ja, ich habe alles versucht was hier steht aber nichts ging, auch nur ansatz weise :-(

dass das int4 bzw. int4_table ist weiß ich ja, aber wenn ichs dann so deklariert hab kam immer "nicht konvertierbar".

dieses problem hab ich jetzt aber zum glück lösen können, aber mit einer etwas anders aussehenden lösung, nämlich so:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  
  2. when 'del'.
  3.  
  4.       data: tv      type ref to cl_htmlb_tableview,
  5.             tv_data type ref to cl_htmlb_event_tableview.
  6.  
  7.       data: line type i.
  8.  
  9.  
  10.       tv ?= cl_htmlb_manager=>get_data&#40;
  11.                request = runtime->server->request
  12.                name    = 'TableView'
  13.                id      = 'TV_REP' &#41;.
  14.       tv_data ?= tv->data.
  15.  
  16.       clear lt_deltab.
  17.       clear line.
  18.  
  19.  
  20.       loop at tv_data->prevselectedrowindextable into line.
  21.  
  22.  
  23. * hier kann ich jetzt für jede markierte Zeile Code ausführen
  24.  
  25.       endloop.
  26.  
  27.  
  28.  
GeSHi ©
Benno3225
.
.
 
Posts: 5
Joined: Mon Jan 09, 2006 10:26 am

Next

Return to BSP + BHTML

Who is online

Users browsing this forum: No registered users and 13 guests