2012-10-31 73 views
3

我正在使用Wicket和ajax框架。下拉菜單通過檢票口填充,下拉菜單的onchnage通過ajax進行處理。
當用戶從下拉列表中選擇值時,我想在下拉菜單中添加動態title
代碼是這樣的:使用ajax在wicket中添加下拉選擇工具提示

DropDownChoice attrDDC = new DropDownChoice("dropDownField", 
    new PropertyModel(this, "modelObject"), 
    entityList, 
    new ChoiceRenderer(element.getEntity().getNameField())); 
attrDDC.setNullValid(true); 
attrDDC.add(new AjaxFormComponentUpdatingBehavior("onchange") { 

    @Override 
    protected void onUpdate(AjaxRequestTarget target) { 
     if (getModelObject() != null) 
      nodeAttribute.setIdCodeValue(getModelObject().getId()); 
     else 
      nodeAttribute.setIdCodeValue(null); 
     // thisDDC.add(new AttributeAppender("onmouseover", 
       new Model("Tip('" + ((WorkflowRules)getModelObject()).getRuleName() + "');"), ";")); 
     // thisDDC.add(new AttributeModifier("title", true, new Model(((WorkflowRules)getModelObject()).getRuleName()))); 
     if (elmntIdDDCMap != null && elmntIdDDCMap.containsKey(thisElmnt.getId())) 
     { 
      List<DropDownChoicePanel> ddcPanelList = elmntIdDDCMap.get(thisElmnt.getId()); 
      for (DropDownChoicePanel ddcPanel : ddcPanelList) 
      { 
       ddcPanel.setEntityList(attributesList); 
       target.addComponent(ddcPanel.getThisDDC()); 
      } 
     } 

    } 

}); 
add(attrDDC); 
thisDDC = attrDDC; 

PS:評論線是我試過的一個。

回答

1

我認爲你應該用「jQuery」來重新提出你的問題。如果你正在使用Wicket 6.x.x,你實際上已經在使用jQuery;)

Wicket基本上是一個服務器端框架。你想要做的是客戶端問題。我不認爲Wicket內部有解決方案。但使用jQuery很容易解決它,Wicket可以很好地與jQuery一起玩。

例如見這些解決方案如何使用工具提示添加到一個下拉列表項的jQuery:
http://integrant.com/2010/07/23/how-to-add-a-tooltip-to-dropdownlist-items/
jquery tooltip to display full text from dropdown selected value

塞巴斯蒂安

+0

我使用的檢票1.4版在這jQuery是不是嵌入式。 –

+0

嗯,但你仍然可以嵌入它。根本沒有辦法告訴Wicket做你想做的,你需要一些客戶端技術來解決它。無論是jQuery還是其他任何您喜歡的JavaScript框架。 –