0

我很难在编辑表单中设置选择框的值。例如,我有这样的 colModel 设置。

colModel:[
         {name:'communication_id', key: true, index:'communication_id', width:30},            
         {name:'communication_type_id', index:'communication_type_id', width:30},
         {name:'communication_type_select',index:'communication_type_select',hidden:true,width:150, editable:true,edittype:'select',formatter:'select',editrules: {edithidden:true},
                                    formoptions:{label:'Communication Type'},
                                    editoptions:{dataUrl:"working_data_url",
                                        buildSelect: function(json){                                                
                                            var response = $.parseJSON(json);

                                            var s = '<select>';

                                            $.each(response.results,function(i,com){
                                                s += ('<option value="' + com.communication_type_id + '">'+ com.communication_type_desc + '</option>');
                                            });


                                            return s + "</select>";


                                        },dataInit: function(elem){
                                            alert(temp);
                                            //alert($('#com_table_communication_type_id').val());
                                            //$(elem).val($('#com_table_communication_type_id').val());
                                        }}},
         {name:'communication_send_dt', index:'communication_send_dt', width:150, sortable:true, sorttype: 'date',
                                    firstsortorder: 'desc', datefmt:'m/d/Y', editable:true},                                         

                            editoptions: {recreateForm:true},
                            rowNum:10,
                            width:'100%',
                            rowList:[10,20,30],
                            pager: '#com_pager',
                            sortname: 'communication_send_dt',
                            viewrecords: true,
                            sortorder: "desc",
                            loadonce:true,
                            caption: "Communication",
                            jsonReader: {
                                    repeatitems : false,
                                    root: "results"
                            },
                            height: '100%',
                            onSelectRow: function(communication_id){

                                var comtype = $(this).getRowData(communication_id);
                                var temp = comtype['communication_type_id'];

                            }
                    });

                    grid.jqGrid('navGrid','#com_pager',{edit:true,add:false,del:false});

当我单击编辑按钮时,它会正确加载选择选项,但我在选择哪个选项时遇到问题。我希望将communication_type_id 中的值加载到communication_type_select 中,并且我尝试了不同的方法来实现这一点。基本上,如果communication_type_id 中的id 为2,那么我希望编辑表单中的选择框在加载编辑表单时也设置为2。对此有什么帮助吗?

更新 1:我现在主要通过使用 beforeShowForm 来工作,但现在我遇到了一件奇怪的事情。当我在 beforeShowForm 中有警报时,一切正常,但是当它被注释掉时,它就不起作用了!感谢您的帮助@Oleg!

grid.jqGrid('navGrid','#com_pager',{edit:true,add:false,del:false},
                            {closeOnEscape:true, recreateForm:true,beforeShowForm: function(formid){  
                                //alert("com type id = "+comidvar + " response id = "+comrespvar + " com form type id = "+comfrmtypevar);
                                $("#communication_type_select", formid).attr("value",comidvar);
                                $("#form_response_select", formid).attr("value",comrespvar);
                                $("#form_type_select", formid).attr("value", comfrmtypevar);
                            }},
4

1 回答 1

0

如果我理解你是正确的,你应该使用带有属性ajaxSelectOptions的 jqGrid 选项。data你可以定义一些额外的选项,比如communication_type_iddata可以通过使用返回哪个值$("#list").jqGrid('getGridParam', 'selrow'),然后getCellcommunication_type_id列中获取值。有关详细信息,请参阅答案

于 2012-06-28T21:34:53.017 回答