# Platzhalter Funktion



## Guest (15. Mai 2008)

Hallo , gibt es in irgend einem Framework eine Platzhalter Funktion , die man benutzen kann um zb. einen bereich freistehen zu lassen und ihn über das UI , z.B über einen Link an Infos wie eine Bean zu Koppeln?

Wie bei ASP Die PlaceHolder ?

Vielen Dank


----------



## robertpic71 (15. Mai 2008)

So 100% klar ist mir dein Anliegen nicht - aber hier mal ein Ansatz:

Ich habe >> dieses << ASP-Placeholderbeispiel mit dem Web/Ajax-Framework ZK nachgebaut bzw. etwas erweitert:


```
<window title="PlaceHolder Example">
     <vbox id="placeholder" height="105px"/>
     <button id="fill" label="Fill" onClick="fuellen()"/>
         <zscript>
              void fuellen() {
                 
                 Button button1 = new Button();
                 button1.label = "Button 1";
                 placeholder.appendChild(button1);
                 
                 // oder einfach den neuen Button mitgeben
                 placeholder.appendChild(new Button("Button 2"));
                 placeholder.appendChild(new Button("Button 3"));
                 
                 // den Fillbutton nach 1x wieder abschalten
                 fill.disabled=true;
               }
           </zscript>
</window>
```

Du kannst das Beispiel >> hier (placeholder.zul) << ausführen.

Da ZK komplett komponentenorientiert arbeitet, braucht man keine Dummykomponente wie den Placeholder von ASP. Ich kann jede Komponente (welche Childs haben darf) im nachhinein erweitern. In diesem Beispiel habe die vbox (= Vertikalbox, alle Childs davon werden untereinander gereiht) dafür verwendet.

Datenfelder könnte ich jetzt ala Swing mit placeholder.appendChild(new Labe(myBean.getValue1)) usw. hinzufügen - aber das ist wohl auch nicht das Wahre.

Da ist es wohl eleganter für die verschiedenen Möglichkeiten ein Layout mit Databinding vorzubereiten:

person.zul


```
..
<grid>
<rows>
     <row>Lastname: <label id="lastname" value="@{controller.PersonBean.lastname}" width="300px"/></row>
     <row>Firstname: <textbox id="firstname" value="@{controller.PersonBean.firstname}" width="300px"/></row>
...
```

und mit placeholder.appendChild(new Include("person.zul")); in den Placeholderbereich einzusetzen. 

Ein Ajaxframework wie ZK ermöglicht natürlich noch ganze andere Möglichkeiten wie z.B. ein Popup-Window.

Es gibt sicher auch andere Lösungsansätze, aber wie schon am Anfang erwähnt, es ist mal ein Ansatz.

/Robert


----------



## Gast (16. Mai 2008)

Vielen Dank Robert.

Also was ich meine ist eben , ein Tag , das in HTML gebettet wird  .



Das man wie bei den MasterPages eine Datei hat , die einen Plkatzhalter beeinhaltet , der dann mit verschiedenen Beans oder Funktionen gefüttert werden kann.

Also sowas wie ein Iframe im Dokument .


```
<hrtml>

<body>

<table>

<tR><td> 
<jsf:Placeholder id=ph1>

</jsf:Placeholder>

</td></tr>
...
```

Und das man dann über die Command Buttons die Funktion in diesem Placeholder ausführen kann .

Das meinte ich Explizit .


----------

