我正在尝试在JQqgrid中动态填充内联组合框。 ajax请求被发送到“dataUrl”参数但是我无法成功地将响应设置到组合框。在从服务器返回响应时,调用了buildSelect函数或我尝试的其他函数。我在下面发布了我的代码,任何人都可以指出为什么buildSelect没有被调用,我无法将动态数据设置到下拉列表。请注意,我也浏览过类似问题的stackoverflow,但没有成功。
{ name: 'hotelId', index:'hotelId',width:30, editable: true, edittype:'select',
editoptions: { dataUrl:'itemPricingNew!loadRevenueCodes.action' + '?hotelId='+$("#hotelId").val(),
value : function (data ){
//var response = toObject(data.responseText).response;
//return response.reqRevenueCode;
alert("Test22");
},
buildSelect: function(data) {
alert("Test");
},
dataInit : function (elem){
alert("Test11");
}
}
},
/*{ name: 'hotelId', index:'hotelId',width:30, editable: true, edittype:'select',
editoptions: { value: { 176: 'One', 177: 'Two'} }
},*/
MilindaD
答案 0 :(得分:1)
hi :)你可以动态地使用Jquery附加到combobox选项,然后将它添加到jqgrid
http://viralpatel.net/blogs/demo/dynamic-combobox-listbox-dropdown-in-javascript.html
谢谢:)
答案 1 :(得分:0)
创建一个javascript方法,该方法进行ajax调用并获取组合框中所需的所有项目的列表。
var httpDropdown = new XMLHttpRequest();
var finalString;
将字符串存储在全局变量中,并将该字符串用作编辑选项。
function getDropdown() {
var actionURL = "itemPricingNew!loadRevenueCodes.action";
httpDropdown.open("POST", actionURL, true);
httpDropdown.onreadystatechange = parseDropdown;
httpDropdown.send(null);
}
function parseDropdown() {
if (httpDropdown.readyState == 4) {
var rootElement = httpDropdown.responseXML.documentElement;
var allChildren = rootElement.childNodes;
var key;
var value;
for(var i=0; i<allChildren.length-1; i++) {
key = allChildren[i].childNodes[0].childNodes[0].nodeValue;
value = allChildren[i].childNodes[1].childNodes[0].nodeValue;
finalString += key+":"+value+";";
createGrid();
}
}
}
首先进行所有处理,然后调用createGrid方法
function createGrid() {
jQuery("#list1").jqGrid({editoptions: {value: finalString}});
}