Hallo,
aangezien ik nu al enige tijd met een probleem romvecht en ik het niet helemaal 100% goed krijg post ik dit. Ik wil vanuit de volgende database gegevens een tree maken...
Mainpage geeft de id weer waaronder de pagina moet hangen en de andere twee velden verklaren zich denk ik vanzelf.
Nu heb ik volgende bean gemaakt:
in het programma zelf (een jsp) ga ik de database gegevens ophalen en voeg deze toe aan de tree volgens deze code:
dit werkt ook goed... ten minste als de gegevens zo zijn als boven, maar als deze gegevens anders zijn, namelijk zo:
... werkt het niet... heeft misschien iemand een andere oplossing hiervoor?
Dit is uitkomst als het verkeerd gaat:
Maar dit had het moeten zijn:
Alvast bedankt!!!
aangezien ik nu al enige tijd met een probleem romvecht en ik het niet helemaal 100% goed krijg post ik dit. Ik wil vanuit de volgende database gegevens een tree maken...
code:
1
2
3
4
5
6
7
8
9
10
| +----+----------+--------------------+ | ID | MainPage | Titel | +----+----------+--------------------+ | 1 | 0 | Mainpage | | 2 | 1 | Sub Page 1 | | 3 | 1 | Sub Page 2 | | 4 | 1 | Sub Page 3 | | 5 | 2 | Sub Sub Page 1 | | 6 | 5 | Sub Sub Sub Page 1 | +----+----------+--------------------+ |
Mainpage geeft de id weer waaronder de pagina moet hangen en de andere twee velden verklaren zich denk ik vanzelf.
Nu heb ik volgende bean gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
| package CMSDataTree;
public class TreeBean {
private int item_id_list[] = new int[100];
private int item_upperlevelid_list[] = new int[100];
private String item_space_list[] = new String[100];
private String item_name_list[] = new String[100];
private int list_pointer = 0;
private int list_pointer_2;
private int notlinkedsel;
public TreeBean() {
}
public String getItem_name(int i){
return item_space_list[i] + " <img src = \"html_doc.JPG\"> <a href=\"DataTree.jsp?notlinkedsel=" + notlinkedsel + "&linkedsel=" + item_id_list[i] + "\">" + item_name_list[i] + "</a>";
}
public int getItem_ID(int i){
return item_id_list[i];
}
public String getItem_name_Special(int i){
return item_space_list[i] + " <img src = \"html_doc.JPG\"> <SPAN STYLE=\"font-family: Verdana; background-color:#3399FF\">" + item_name_list[i] + "</SPAN>";
}
public void addtreeitem(int item_id, int item_upperlevelid, String item_name){
boolean found = false;
list_pointer_2 = list_pointer;
if(item_upperlevelid > 0){
for (int i = 0; i < 100; i++){
if (item_upperlevelid == item_id_list[i]){
found = true;
list_pointer_2 = i + 1;
}
}
}
if(found){
for (int i = 99; i >= list_pointer_2; i--){
item_id_list[i] = item_id_list[i-1];
item_name_list[i] = item_name_list[i-1];
item_space_list[i] = item_space_list[i-1];
item_upperlevelid_list[i] = item_upperlevelid_list[i-1];
}
}
if(item_upperlevelid > 0){
System.out.println(item_space_list[list_pointer_2] + " = " + item_space_list[list_pointer_2 - 1] + " + " + " ");
item_space_list[list_pointer_2] = item_space_list[list_pointer_2 - 1] + " ";
}else{
item_space_list[list_pointer_2] = " ";
}
item_id_list[list_pointer_2] = item_id;
item_upperlevelid_list[list_pointer_2] = item_upperlevelid;
item_name_list[list_pointer_2] = item_name;
list_pointer++;
}
public void initialize_values(){
for(int i = 0; i < 100; i++){
item_id_list[i] = 0;
item_upperlevelid_list[i] = 0;
item_name_list[i] = "";
item_space_list[i] = "";
}
list_pointer = 0;
}
/** Getter for property notlinkedsel.
* @return Value of property notlinkedsel.
*/
public int getNotlinkedsel() {
return this.notlinkedsel;
}
/** Setter for property notlinkedsel.
* @param notlinkedsel New value of property notlinkedsel.
*/
public void setNotlinkedsel(int notlinkedsel) {
this.notlinkedsel = notlinkedsel;
}
} |
in het programma zelf (een jsp) ga ik de database gegevens ophalen en voeg deze toe aan de tree volgens deze code:
code:
1
2
3
4
5
| rs = statement.executeQuery("select * from site where linked = 1 order by mainpage, titel desc;");
while(rs.next()){
TreeBeanId.addtreeitem(rs.getInt(1), rs.getInt(2), rs.getString(3));
itemsadded++;
} |
dit werkt ook goed... ten minste als de gegevens zo zijn als boven, maar als deze gegevens anders zijn, namelijk zo:
code:
1
2
3
4
5
6
7
8
9
10
| +----+----------+--------------------+ | ID | MainPage | Titel | +----+----------+--------------------+ | 1 | 0 | Mainpage | | 2 | 1 | Sub Page 1 | | 3 | 4 | Sub Page 2 | | 4 | 5 | Sub Page 3 | | 5 | 2 | Sub Sub Page 1 | | 6 | 2 | Sub Sub Sub Page 1 | +----+----------+--------------------+ |
... werkt het niet... heeft misschien iemand een andere oplossing hiervoor?
Dit is uitkomst als het verkeerd gaat:
code:
1
2
3
4
5
6
| Mainpage
Sub Page 1
Sub Sub Page 1
Sub Page 3
Sub Sub Sub Page 1
Sub Page 2 |
Maar dit had het moeten zijn:
code:
1
2
3
4
5
6
| Mainpage
Sub Page 1
Sub Sub Page 1
Sub Page 3
Sub Page 2
Sub Sub Sub Page 1 |
Alvast bedankt!!!