我正在使用jqGrid。为了添加弹出组合框我正在使用数据库中的默认数据工作正常。 但是当显示编辑弹出窗口时,它不会在组合框中显示所选值,而是在指定的列表中显示第一个值。
以下是我的代码:
$("#list").jqGrid({
url:'<%=request.getContextPath()%>/getDetail.jsp',
datatype: 'xml',
mtype: 'GET',
colNames:['DataChannel ID','Description','Date Creation(MM/dd/yyyy)','Date Closure(MM/dd/yyyy)','Frequency','Source Type','Source Data Type','Primary Data Source','Secondary Data Source','Data Available From(MM/dd/yyyy)','Lag','Advance Alert','Confidentiality Type','Data Flow Type','PSM Name','Comment','Data Available Upto(MM/dd/yyyy)'],
colModel :[
{name:'DESCRIPTION', index:'DESCRIPTION',editable:true,editrules:{required:true}, width:120},
{name:'DATE_CREATION', index:'DATE_CREATION', editable:true,editrules:{required:true}, width:80},
{name:'DATE_CLOSURE', index:'DATE_CLOSURE', editable:true,width:80},
{name:'PRIMARY_SOURCE_ID', index:'PRIMARY_SOURCE_ID',editable:true,edittype:"select",
edittype:"select",editoptions:
{dataInit:function(elem){alert(elem);},value:"<%ctr=0;count=sourceList.size();for (itr=sourceList.iterator(); itr.hasNext(); ) {ctr++;sourceMap=(HashMap)itr.next();it = sourceMap.entrySet().iterator();while (it.hasNext()) {pairs = (Map.Entry)it.next();%><%=pairs.getKey()%>:<%=pairs.getValue()%><% if(ctr < count){%>;<%}}}%>"}, width:120},
{name:'DATA_AVAILABLE_UPTO', index:'DATA_AVAILABLE_UPTO',editable:false,width:100}],
pager: $('#pager'),
rowNum:10,
rowList:[10,20,30],
sortname: 'user',
sortorder: "desc",
viewrecords: true,
multiselect:false,
imgpath: '<%=request.getContextPath()%>/themes/steel/images',
caption: 'Data Channel Master Data',
editurl: '<%=request.getContextPath()%>/ChannelUpdate.jsp',
width:1700
}).navGrid('#pager',{add:true,addtext:'Add',edit:true,edittext:'Edit',del:true,deltext:'Del', search:true,searchtext:'Find',refresh:true}, //options
{height:300,width:500,reloadAfterSubmit:true}, // edit options
{height:300,width:500,reloadAfterSubmit:true}, // add options
{reloadAfterSubmit:true}, // del options
{} // search options
);
});
如果我在列'PRIMARY_SOURCE_ID'的编辑选项中使用dataUrl而不是值,那么firebug正在通过错误
options.value is undefined
[Break On This Error] var so = options.value.split(";"),sv, ov;
请帮助...如何在组合框中获取选定值以进行编辑窗口。
提前致谢, Sandeep Vemula
答案 0 :(得分:0)
我建议您在editoptions中使用dataUrl
代替value
,并另外使用buildSelect
(请参阅here),这样可以简化界面为dataUrl
提供数据的相应操作。如果您使用dataUrl
,则应从editoptions删除value
定义。
如果您仍然遇到问题,可以发布您使用的当前代码以及错误后面的代码。
答案 1 :(得分:0)
只需将formatter:"select"
选项添加到我想在编辑表单中以选定值显示组合框的列中。