jqGrid组合框在添加/编辑窗口中

时间:2011-05-05 11:46:12

标签: jquery jqgrid

我正在使用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

2 个答案:

答案 0 :(得分:0)

我建议您在editoptions中使用dataUrl代替value,并另外使用buildSelect(请参阅here),这样可以简化界面为dataUrl提供数据的相应操作。如果您使用dataUrl,则应从editoptions删除value定义。

如果您仍然遇到问题,可以发布您使用的当前代码以及错误后面的代码。

答案 1 :(得分:0)

只需将formatter:"select"选项添加到我想在编辑表单中以选定值显示组合框的列中。