我有一個DropDownChoice框可以在load()上加載一個值列表,但是當我從列表中選擇一個值時,所選值不會顯示在框中,即使它似乎getModelObject()會檢索並返回正確的值(我選擇的值)。這只是盒子不顯示它。我使用Wicket 6.3.0,本地測試使用碼頭服務器6.1.26和FireFox 17.0,JQuery Mobile 1.2.0,JQuery 1.8.3。任何建議或想法?DropDownChoice不顯示選定的值
這裏是檢票代碼:
MetaProfile profile = null;
...
IModel<List<String>> oxeNodeModel = null;
oxeNodeModel = new LoadableDetachableModel<List<String>>() {
private static final long serialVersionUID = 1L;
@Override
protected List<String> load() {
try {
List<String> names = getOXENodeList();
//load the OXE node list
if (names == null)
return Collections.emptyList();
else {
return names;
}
}catch (Exception e) {
return Collections.emptyList();
}
}
};
oxeNodeBox = new DropDownChoice("oxeNode",
new PropertyModel<String>(profile, "oxeNodeName"), oxeNodeModel);
oxeNodeBox.setEnabled(true);
oxeNodeBox.setOutputMarkupId(true);
add(oxeNodeBox);
HTML模板是:
<tr id="oxeNodeRow" name="oxeNodeRow" style="display:none">
<td align="right" nowrap class="fieldLabel"><label for="oxeNode" wicket:id="oxeNodeLabel" class="requiredLabel">OXE Node</label></td>
<td colspan="-1"><select id="oxeNode" name="oxeNode" wicket:id="oxeNode">
<option selected>OXENode</option> </select>
</td>
</tr>
我有一大堆的DropDownChoice箱有同樣的問題相同形式。但是,窗體的第一個DropDownChoice沒有問題,即,一旦我從列表中進行選擇,它就會顯示選定的值。它的檢票代碼和html標記如下。我們希望,有人用銳利的眼睛能發現可能引發問題的區別:
profileTypeBox = new DropDownChoice<MetaProfileType>("type",
new PropertyModel<MetaProfileType>(profile, "type"),
Arrays.asList(MetaProfileType.values()),
new IChoiceRenderer<MetaProfileType>() {
private static final long serialVersionUID = 1L;
@Override
public Object getDisplayValue(MetaProfileType object) {
return object.name();
}
@Override
public String getIdValue(MetaProfileType object, int index) {
return object.name();
}
}
);
profileTypeBox.setOutputMarkupId(true);
add(profileTypeBox);
HTML:
<td colspan="-1"> <select id="profileType" name="profileType" wicket:id="type">
<option>default</option>
</select> </td>
順便說一句,我在這裏,包括HTML標題也只是在情況下,它可能是問題,因爲這個問題出現後,我從舊的CSS頭(註釋掉)切換到標準的jQuery Mobile包括:
<html xmlns:wicket="http://wicket.apache.org/">
<head>
<!-- meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="css/custom.css" media="only screen and (max-width: 480px)"/>
<link rel="stylesheet" type="text/css" href="css/default.css" media="only screen and (min-width: 1025px)"/>
<link rel="stylesheet" type="text/css" href="css/portrait.css"
media="all and (max-device-width: 1024px) and (orientation:portrait)"/>
<link rel="stylesheet" type="text/css" href="css/landscape.css"
media="all and (max-device-width: 1024px) and (orientation:landscape)"/>
<meta name="viewport" content="user-scalable=no, width=device-width"/>
<link rel="stylesheet" href="css/iphone-style-checkboxes.css" type="text/css"/>
<script type="text/javascript" src="js/iphone-style-checkboxes.js"></script-->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"> </script>
</head>
當你說「從列表中選擇一個值」,你的意思是選擇通過瀏覽器使用你的應用程序時的值?或者你的意思是從代碼中的列表中選擇一個值? – Sarhanis
很抱歉,如果不清楚,我的意思是當用戶從瀏覽器網頁上的DropDownChoice列表中手動選擇一個值時,所選值不會顯示在gui的框中。不,我並不是指以編程方式選擇一個值。 –
這聽起來不可能。你能展示HTML顯示嗎?是否有一些AJAX調用?爲什麼是colspan = -1?這沒有意義。 – Sarhanis