2013-10-10 4 views
1

У меня есть для каждой на моей странице zk, и в каждом я создаю столбец, а в моем столбце мне нужно добавить iframe, и каждому кадру мне нужно передать как переменную метку колонка.переменная в iframe с zk

У меня есть что-то вроде:

<zk> 
      <window title="Dynamic Columns" border="normal" width="1824px" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.DynamicColumnModel')"> 
<grid > 

       <columns> 
        <column forEach="${vm.columnList}" label="${each}"> 

       <iframe 
     src="test.zul" /> 
       </column> 
       </columns> 
    </grid> 
    </window> 
</zk> 

Но у меня есть ошибки, когда я включать страницу, и моя первая проблема заключается в том, что я не знаю, как я могу передать переменную каждого фрейма.

И моя ява это что-то вроде:

public class DynamicColumnModel { 

private List<String> columnList = new ArrayList<String>(); 
private String texto="123"; 

@Init 
public void init(){ 

    columnList.add("Dynamic Col A"); 
    columnList.add("Dynamic Col B"); 
    columnList.add("Dynamic Col C"); 
    columnList.add("Dynamic Col D"); 
} 

public List<String> getColumnList() { 
    return columnList; 
} 
public void setColumnList(List<String> columnList) { 
    this.columnList = columnList; 
} 

public String getTexto() { 
    return texto; 
} 
public void setTexto(String texto) { 
    this.texto = texto; 
} 


@Command 
    public void mensaje(){ 

    } 

} 

Благодарности

+0

Я думаю, что вместо того, чтобы вызывать Irame здесь вы можете создать из класса и передает Java значение –

+0

Но как я могу перейти с Java, или как я могу создать i-фрейм из java? – user2768380

+0

Вы должны использовать проводку ID (ZUL COmponent ID) для этого @Wire в ViewModel –

ответ

1

Если ваш each является String, что это, кажется, как вы установите его в качестве метки столбца, просто идти вперед и передать его в качестве параметра URL для iframe.

<window apply="org.zkoss.bind.BindComposer" 
      viewModel="@id('vm') @init('pkg$.DynamicColumnModel')"> 
     <grid > 
      <columns> 
       <column forEach="${vm.columnList}" label="${each}"> 
        <iframe src="test.zul?myValue=${each}" /> 
       </column> 
      </columns> 
     </grid> 
    </window> 

Обратите внимание, что когда вы используете iframe компонент, вы ступаете за пределами ZK. Правда, сам iframe указывает на страницу ZK, но это не входит в ту же среду ZK. iframe может также легко включать www.google.com и поэтому нет конкретной поддержки ZK для передачи значений на страницы ZK, включенные таким образом.

Если вы используете только страницы ZK и хотите более гибко передавать информацию на эти страницы, вам нужно использовать тег Z12 include. Взгляните на документацию по адресу how to pass values to included ZK pages.

Редактировать
Если идти по iframe маршруту, вы можете получить доступ к значениям параметров URL из test.zul с использованием Zk в Execution класса:

Execution execution = Executions.getCurrent(); 
execution.getParameter("myValue"); 
+0

И как получить переменную в моем iframe? – user2768380

+0

Поскольку мне нужно передать переменную, которую я получаю в своей модели, чтобы сделать запрос в DAO, чтобы показать на моей странице, что я включаю или звоню с фреймом – user2768380

Смежные вопросы