2010-12-05 164 views
0

現在我已經掙扎了好幾天了,而且我似乎無法做到。 這裏是我的代碼:ZK CDATA並傳遞一個變量?

<attribute name="onClick"><![CDATA[ 
Messagebox.show("Remove this file?", "Remove?", Messagebox.YES | Messagebox.NO, Messagebox.QUESTION, 
new EventListener() { 
    public void onEvent(Event evt) { 
     switch (((Integer)evt.getData()).intValue()) { 
      case Messagebox.YES: someFunction(${each.Id}); break; 
      case Messagebox.NO: break; 
     } 
    } 
}) 
]]></attribute> 

上面的代碼是從一個ZUL ZK頁面在foreach循環。它應該生成一個文件列表,在每個文件上你應該有一個「刪除」按鈕。當你點擊它時,應該出現一個彈出窗口並要求確認。確認後,它應該將ID傳遞給一個函數,然後處理所有內容。

我很確定這是一個非常小的東西我失蹤或不知道。

回答

2

這裏有兩個問題。

  1. 您不能在zscript中使用EL。相反,你必須通過隱式對象來訪問它。例如,
 
    <window> 
     <button label="${each}" forEach="apple, orange"> 
     <zscript> 
     self.parent.appendChild(new Label("" + each)); 
     </zscript> 
     </button> 
    </window> 
  1. 然而,每次只在頁面渲染是可用的。評估後重置。這意味着,您無法在事件監聽器中訪問它。例如,以下將不起作用
 
    <window> 
     <button label="${each}" forEach="apple, orange" 
     onClick='alert(""+each)'/> 
    </window> 

你要存儲的每個對象,然後再在事件偵聽器中使用它。

你可以看看ZK's reference

+0

謝謝:) ,幫助我! – tftd 2010-12-10 02:52:05