我是这个jquery的新手,所以iam陷入了我必须从url (/ operator / vehicles / getAllVehicles) 填充下拉列表的地步。 我关注了这个网站上的很多帖子甚至很多博客但是找不到解决方案。 我有弹簧控制器,它提供了数据表中的车辆列表,现在在添加新车辆时我需要来自数据库的车辆模型,所以我创建了一个URL (/ operator / vehicles / getAllVehiclesModels) 用于检索车辆型号列表。此modllist网址由editoptions的 dataUrl 调用。现在,这个url应该由dataUrl调用,但事实并非如此。我已经打印了一些要检查的文本,但是没有调用它,也没有打印文本。
我试图从控制器返回html元素,如:
@RequestMapping(value="/getAllVehiclesModels", method=RequestMethod.GET)
public @ResponseBody String getAllVehicleModels(){
System.out.println("Vehicles Model List size: "+vehicleModelService.getAllVehicleModels().size());
List<VehicleModelVO> vehicleModelVOs =vehicleModelService.getAllVehicleModels();
StringBuilder sb=new StringBuilder("<select>");
for(VehicleModelVO vo: vehicleModelVOs){
sb.append("<option value=" + vo.getId() + ">"+ vo.getName() + "</option>");
}
sb.append("</select>");
System.out.println("Final String select: "+sb.toString());
return sb.toString();
}
这没用,所以我只返回了VehicleModelsVO列表,即返回列表
我的Jsp页面:
jQuery("#vehicles_list").jqGrid({
url: '<c:url value="/operator/vehicles/getAllVehicles" />',
datatype: "json",
jsonReader: {repeatitems: false, root: function (obj) { return obj; }},
colNames:['Number Plate', 'Vehicle Model', 'No Of Seats', 'Image'],
colModel:[
{name:'numberPlate',index:'numberPlate', width:100, editable:true, edittype:'text', editoptions: {size:25, maxlength:255}},
{name:'vehicleModelName',
index:'vehicleModelName',
width:100, editable:true,
edittype:'select',
editoptions:{dataUrl: '/operator/vehicles/getAllVehiclesModels' ,
buildSelect: function (response) {
var data = typeof response === "string" ?
$.parseJSON(response.responseText) : response,
s = "<select>";
s += '<option value="0">--No Manager--</option>';
$.each(data, function ()
{
s += '<option value=1>1</option>';
});
return s + "</select>";
}
}
},
{name:'vehicleModelNoOfSeats', index:'vehicleModelNoOfSeats'},
{name:'image',formatter: getImage, editable:true, edittype:'file', editoptions: { enctype: "multipart/form-data"} }
],
autowidth: true,
scrollOffset: 0,
rowNum:10,
rowList:[10,20,30],
pager: jQuery('#vehicles_list_pager'),
viewrecords: true,
gridview: true,
loadonce: true,
multiselect: true
});
在这里,我在选项中使用静态值1进行测试。
我甚至使用了返回json格式的javascript方法 - editoptions {value:getSelectValues} 和我的javascript代码:
function getSelectValues(){
$.getJSON("/operator/vehicles/getAllVehiclesModels", null, function(data) {
alert("hello");
if (data != null) {
alert(data);
return data;
}
});
}
在上面的例子中,我的控制器以以下形式返回值:&#34; 1:one; 2:2; 3:3&#34;