jqGrid重新创建表单参数

jqGrid重新创建表单参数,jqgrid,Jqgrid,您好,我正在尝试将jqGrid的recreateForm参数设置为true,以解决使用自定义edittype列引起的问题。在这里,我发现最好的方式是写这行: jQuery.extend(jQuery.jgrid.edit, { recreateForm: true }); 我试过了,但没有成功。有人能帮我吗 我遇到的问题代码是 $(document).ready(function() { jQuery("#list").jqGrid({ url: '<%=U

您好,我正在尝试将jqGrid的recreateForm参数设置为true,以解决使用自定义edittype列引起的问题。在这里,我发现最好的方式是写这行:

   jQuery.extend(jQuery.jgrid.edit, { recreateForm: true });
我试过了,但没有成功。有人能帮我吗

我遇到的问题代码是

$(document).ready(function() {
    jQuery("#list").jqGrid({
        url: '<%=Url.Action("buildGridData") %>',
        editurl: '/tipomovi/Edit/',
        datatype: 'json',
        mtype: 'GET',
        colNames: ['Codigo', 'Descripción', 'Tipo Movimiento', 'Inventario Propio',
                   'Tipo Mov. Soporte', 'Clase Bodega Destino'],
        colModel: [
            { name: 'timocodi', index: 'timocodi', key: true, align: 'left',
              width: 85, editable: true, edittype: 'text',
              editrules: { required: true, integer: true} },
            { name: 'timodesc', index: 'timodesc', align: 'left', width: 300,
              editable: true, edittype: 'text', editoptions: { maxlength: 40 },
              editrules: { required: true} },
            { name: 'timosaen', index: 'timosaen', align: 'center', sortable: false,
              width: 120, editable: true, edittype: 'custom',
              editoptions: { custom_element: ESElement, custom_value: ESValue },
              editrules: { required: true} },
            { name: 'timoprop', index: 'timoprop', align: 'center', sortable: false,
              width: 120, editable: true, edittype: 'checkbox',
              editoptions: { value: "S:N" }, editrules: { required: true} },
            { name: 'timomvso', index: 'timomvso', align: 'center', sortable: false,
              width: 130, editable: true, edittype: 'text' },
            { name: 'clbodesc', index: 'clbodesc', align: 'left', sortable: false,
              width: 200, editable: true, edittype: 'select',
              editoptions: { size: 71 }, editrules: { required: true}}],
        pager: $('#pager'),
        rowNum: 10,
        rowList: [10, 20, 30],
        sortname: 'timocodi',
        sortorder: 'asc',
        viewrecords: true,
        viewsortcols: [true, 'vertical', true],
        imgpath: '/content/redmond/images',
        caption: 'Tipos de Movimientos de Inventario',
        width: 'auto',
        shrinkToFit: false,
        height: 'auto',
        loadComplete: function() {
            jQuery('#list').setColProp('clbodesc', {editoptions: {value: clases}});
        }
    });
    jQuery.extend(jQuery.jgrid.edit, { recreateForm: true });        
});
$(文档).ready(函数(){
jQuery(“#list”).jqGrid({
url:“”,
editurl:“/tipomovi/Edit/”,
数据类型:“json”,
mtype:'获取',
colname:['Codigo'、'Descripción'、'Tipo moviminto'、'Inventario Propio',
“蒂波·莫夫·索波特”、“克莱斯·博迪加·德斯特诺”],
colModel:[
{name:'timocodi',index:'timocodi',key:true,align:'left',
宽度:85,可编辑:true,编辑类型:“文本”,
editrules:{required:true,integer:true}},
{名称:'timodesc',索引:'timodesc',对齐:'left',宽度:300,
可编辑:true,edittype:'text',editoptions:{maxlength:40},
editrules:{required:true}},
{name:'timosaen',index:'timosaen',align:'center',sortable:false,
宽度:120,可编辑:true,编辑类型:“自定义”,
editoptions:{custom_元素:ESElement,custom_值:ESValue},
editrules:{required:true}},
{name:'timoprop',index:'timoprop',align:'center',sortable:false,
宽度:120,可编辑:true,编辑类型:“复选框”,
editoptions:{value:“S:N”},editrules:{required:true},
{name:'timomvso',index:'timomvso',align:'center',sortable:false,
宽度:130,可编辑:true,编辑类型:'text'},
{name:'clbodesc',index:'clbodesc',align:'left',sortable:false,
宽度:200,可编辑:true,编辑类型:“选择”,
editoptions:{size:71},editrules:{required:true}}],
寻呼机:$(“#寻呼机”),
rowNum:10,
行列表:[10,20,30],
sortname:“timocodi”,
排序器:“asc”,
viewrecords:是的,
viewsortcols:[true'垂直',true],
imgpath:“/content/redmond/images”,
描述:“发明运动”主题,
宽度:“自动”,
shrinkToFit:错,
高度:“自动”,
loadComplete:function(){
jQuery('#list').setColProp('clbodesc',{editoptions:{value:clases}});
}
});
extend(jQuery.jgrid.edit,{recreateForm:true});
});
在哪里

函数元素(值、选项)
{
//调试器;
var v1=“”
var v2=“”
如果(值=“E”){
v1=“已检查”;
}
否则{
v2=“已检查”;
}
var elemStr='Entrada'+
“萨利达”;
返回$(elemStr)[0];
};
函数值(elem)
{
rb=elem[0]。全部[0]。选中+“”+elem[0]。全部[1]。选中;
返回rb;
}; 
奥列格,你好。下面是视图的完整代码:

<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Tipo de Movimiento
</asp:Content>


<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <h2>Tipo de Movimiento de Materiales</h2>
    Modo de Edición: 
    <input type="radio" name="rdEditApproach" onclick="inlineEdit();" /> En linea
    <input type="radio" name="rdEditApproach" onclick="formEdit();" /> Forma<br /><br />
    <%=Html.ActionLink("Ir al Menu", "Index", "Menu")%> 
    <table id="list" cellpadding="0" cellspacing="0"></table>
    <div id="pager" style="text-align:center;"></div>
<script type="text/javascript">
    var clases = $.ajax(
                       { url: '/tipomovi/clase/', async: false,
                           success: function(data, result) {
                               if (!result)
                                   alert('Fallo recuperacion de clases de Bodega');
                           }
                       }).responseText;

    var lastSel;

    $(document).ready(function() {
        jQuery("#list").jqGrid({
            url: '<%=Url.Action("buildGridData") %>',
            editurl: '/tipomovi/Edit/',
            datatype: 'json',
            mtype: 'GET',
            colNames: ['Codigo', 'Descripción', 'Tipo Movimiento', 'Inventario Propio', 'Tipo Mov. Soporte', 'Clase Bodega Destino'],
            colModel: [
              { name: 'timocodi', index: 'timocodi', key: true, align: 'left', width: 85, editable: true, edittype: 'text', editrules: { required: true, integer: true} },
              { name: 'timodesc', index: 'timodesc', align: 'left', width: 300, editable: true, edittype: 'text', editoptions: { maxlength: 40 }, editrules: { required: true} },
              { name: 'timosaen', index: 'timosaen', align: 'center', sortable: false, width: 120, editable: true, edittype: 'custom',
                  editoptions: { custom_element: ESElement, custom_value: ESValue }, editrules: { required: true}
              },
              { name: 'timoprop', index: 'timoprop', align: 'center', sortable: false, width: 120, editable: true, edittype: 'checkbox', editoptions: { value: "S:N" }, editrules: { required: true} },
              { name: 'timomvso', index: 'timomvso', align: 'center', sortable: false, width: 130, editable: true, edittype: 'text' },
              { name: 'clbodesc', index: 'clbodesc', align: 'left', sortable: false, width: 200, editable: true, edittype: 'select', editoptions: { size: 71 }, editrules: { required: true}}],
            pager: $('#pager'),
            rowNum: 10,
            rowList: [10, 20, 30],
            sortname: 'timocodi',
            sortorder: 'asc',
            viewrecords: true,
            viewsortcols: [true, 'vertical', true],
            imgpath: '/content/redmond/images',
            caption: 'Tipos de Movimientos de Inventario',
            width: 'auto',
            shrinkToFit: false,
            height: 'auto',
            loadComplete: function() {
                jQuery('#list').setColProp('clbodesc', { editoptions: { value: clases} });
            }
        });
        jQuery.extend(jQuery.jgrid.edit, { recreateForm: true });        
    });


    function ESElement(value, options) 
    {
       //debugger;
       var v1 = ""
       var v2 = ""
       if (value == "E") {
         v1 = "checked";
       }
       else {
         v2 = "checked";
       }
       var elemStr = '<div><input type="radio" name="es" id="entrada"  value="E" ' + v1 + ' /> Entrada ' +
                     '&nbsp;&nbsp; <input type="radio" name="es" id="salida" value="S" ' + v2 + ' /> Salida </div>';
       return $(elemStr)[0];
    };
    function ESValue(elem) 
    {
       rb = elem[0].all[0].checked + ' ' + elem[0].all[1].checked;
       return rb;
    }; 

    function inlineEdit() {
        $('input[name=rdEditApproach]').attr('disabled', true);
        $('#list').navGrid(
                '#pager',
        //Activando botones
                {add: true, del: true, edit: false, search: false },
        //opciones de adición
                {width: 'auto', url: '/tipomovi/Create/' },
        //delete options
                {url: '/tipomovi/Delete/' }
            );
        //add onSelectRow event to support inline edit
        $('#list').setGridParam({
            onSelectRow: function(id) {
                if (id && id != lastSel) {
                    //save changes in row 
                    $('#list').saveRow(lastSel, false);
                    lastSel = id;
                }
                //trigger inline edit for row
                $('#list').editRow(id, true);
            }
        });
    };

    function formEdit() {
        $('input[name=rdEditApproach]').attr('disabled', true);
        $('#list').navGrid(
           '#pager',
           //enabling buttons
           {add: true, del: true, edit: true, search: true},
           //edit option
           {width: 'auto'},
           //add options
           {width: 'auto', url: '/tipomovi/Create/' },
           //delete options
           { url: '/tipomovi/Delete/',
             width: 'auto',
             afterSubmit: function(r, d) {
                 return [r.responseText == "", r.responseText];}
             },
           //search options
           {url: '/tipomovi/buildGridData/', width: 'auto', closeAfterSearch: true }
           );       
    };  // function FormEdit


</script>
</asp:Content>

蒂波德莫维门托酒店
材料的移动
医疗方式:
直线
形式

var clases=$.ajax( {url:'/tipomovi/clase/',async:false, 成功:功能(数据、结果){ 如果(!结果) 警觉(“酒馆之法复发”); } }).responseText; var lastSel; $(文档).ready(函数(){ jQuery(“#list”).jqGrid({ url:“”, editurl:“/tipomovi/Edit/”, 数据类型:“json”, mtype:'获取', colNames:['Codigo','Descripción','Tipo Movimento','Inventario Propio','Tipo Mov.Soport','Clase Bodega Destino'], colModel:[ {name:'timocodi',index:'timocodi',key:true,align:'left',width:85,edit:true,edittype:'text',editrules:{required:true,integer:true}, {name:'timodesc',index:'timodesc',align:'left',width:300,edittype:'text',editoptions:{maxlength:40},editrules:{required:true}, {name:'timosaen',index:'timosaen',align:'center',sortable:false,width:120,editable:true,edittype:'custom', editoptions:{custom_元素:ESElement,custom_值:ESValue},editrules:{required:true} }, {name:'timoprop',index:'timoprop',align:'center',sortable:false,width:120,edittype:'checkbox',editoptions:{value:'S:N'},editrules:{required:true}, {name:'timomvso',index:'timomvso',align:'center',sortable:false,width:130,editable:true,edittype:'text'}, {name:'clbodesc',index:'clbodesc',align:'left',sortable:false,width:200,edittype:'select',editoptions:{size:71},editrules:{required:true}], 寻呼机:$(“#寻呼机”), rowNum:10, 行列表:[10,20,30], sortname:“timocodi”, 排序器:“asc”, viewrecords:是的, viewsortcols:[true'垂直',true], imgpath:“/content/redmond/images”, 描述:“发明运动”主题, 宽度:“自动”, shrinkToFit:错, 高度:“自动”, loadComplete:function(){ jQuery('#list').setColProp('clbodesc',{editoptions:{value:clases}}); } }); extend(jQuery.jgrid.edit,{recreateForm:true}); }); 函数元素(值、选项) { //调试器; var v1=“” var v2=“” 如果(值=“E”){ v1=“已检查”; } 否则{ v2=“已检查”; } var elemStr='Entrada'+ “萨利达”; 返回$(elemStr)[0];
<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Tipo de Movimiento
</asp:Content>


<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <h2>Tipo de Movimiento de Materiales</h2>
    Modo de Edición: 
    <input type="radio" name="rdEditApproach" onclick="inlineEdit();" /> En linea
    <input type="radio" name="rdEditApproach" onclick="formEdit();" /> Forma<br /><br />
    <%=Html.ActionLink("Ir al Menu", "Index", "Menu")%> 
    <table id="list" cellpadding="0" cellspacing="0"></table>
    <div id="pager" style="text-align:center;"></div>
<script type="text/javascript">
    var clases = $.ajax(
                       { url: '/tipomovi/clase/', async: false,
                           success: function(data, result) {
                               if (!result)
                                   alert('Fallo recuperacion de clases de Bodega');
                           }
                       }).responseText;

    var lastSel;

    $(document).ready(function() {
        jQuery("#list").jqGrid({
            url: '<%=Url.Action("buildGridData") %>',
            editurl: '/tipomovi/Edit/',
            datatype: 'json',
            mtype: 'GET',
            colNames: ['Codigo', 'Descripción', 'Tipo Movimiento', 'Inventario Propio', 'Tipo Mov. Soporte', 'Clase Bodega Destino'],
            colModel: [
              { name: 'timocodi', index: 'timocodi', key: true, align: 'left', width: 85, editable: true, edittype: 'text', editrules: { required: true, integer: true} },
              { name: 'timodesc', index: 'timodesc', align: 'left', width: 300, editable: true, edittype: 'text', editoptions: { maxlength: 40 }, editrules: { required: true} },
              { name: 'timosaen', index: 'timosaen', align: 'center', sortable: false, width: 120, editable: true, edittype: 'custom',
                  editoptions: { custom_element: ESElement, custom_value: ESValue }, editrules: { required: true}
              },
              { name: 'timoprop', index: 'timoprop', align: 'center', sortable: false, width: 120, editable: true, edittype: 'checkbox', editoptions: { value: "S:N" }, editrules: { required: true} },
              { name: 'timomvso', index: 'timomvso', align: 'center', sortable: false, width: 130, editable: true, edittype: 'text' },
              { name: 'clbodesc', index: 'clbodesc', align: 'left', sortable: false, width: 200, editable: true, edittype: 'select', editoptions: { size: 71 }, editrules: { required: true}}],
            pager: $('#pager'),
            rowNum: 10,
            rowList: [10, 20, 30],
            sortname: 'timocodi',
            sortorder: 'asc',
            viewrecords: true,
            viewsortcols: [true, 'vertical', true],
            imgpath: '/content/redmond/images',
            caption: 'Tipos de Movimientos de Inventario',
            width: 'auto',
            shrinkToFit: false,
            height: 'auto',
            loadComplete: function() {
                jQuery('#list').setColProp('clbodesc', { editoptions: { value: clases} });
            }
        });
        jQuery.extend(jQuery.jgrid.edit, { recreateForm: true });        
    });


    function ESElement(value, options) 
    {
       //debugger;
       var v1 = ""
       var v2 = ""
       if (value == "E") {
         v1 = "checked";
       }
       else {
         v2 = "checked";
       }
       var elemStr = '<div><input type="radio" name="es" id="entrada"  value="E" ' + v1 + ' /> Entrada ' +
                     '&nbsp;&nbsp; <input type="radio" name="es" id="salida" value="S" ' + v2 + ' /> Salida </div>';
       return $(elemStr)[0];
    };
    function ESValue(elem) 
    {
       rb = elem[0].all[0].checked + ' ' + elem[0].all[1].checked;
       return rb;
    }; 

    function inlineEdit() {
        $('input[name=rdEditApproach]').attr('disabled', true);
        $('#list').navGrid(
                '#pager',
        //Activando botones
                {add: true, del: true, edit: false, search: false },
        //opciones de adición
                {width: 'auto', url: '/tipomovi/Create/' },
        //delete options
                {url: '/tipomovi/Delete/' }
            );
        //add onSelectRow event to support inline edit
        $('#list').setGridParam({
            onSelectRow: function(id) {
                if (id && id != lastSel) {
                    //save changes in row 
                    $('#list').saveRow(lastSel, false);
                    lastSel = id;
                }
                //trigger inline edit for row
                $('#list').editRow(id, true);
            }
        });
    };

    function formEdit() {
        $('input[name=rdEditApproach]').attr('disabled', true);
        $('#list').navGrid(
           '#pager',
           //enabling buttons
           {add: true, del: true, edit: true, search: true},
           //edit option
           {width: 'auto'},
           //add options
           {width: 'auto', url: '/tipomovi/Create/' },
           //delete options
           { url: '/tipomovi/Delete/',
             width: 'auto',
             afterSubmit: function(r, d) {
                 return [r.responseText == "", r.responseText];}
             },
           //search options
           {url: '/tipomovi/buildGridData/', width: 'auto', closeAfterSearch: true }
           );       
    };  // function FormEdit


</script>
</asp:Content>