0

データ型が local の JQgrid を作成していて、getLocalRow または getCell を使用して行を編集して行の値を取得したいのですが、常に false になります。これは私のグリッド定義です:

jQuery("#rowed5").jqGrid({  
    datatype: 'local',
    data: mydata,

    loadtext:"Cargando...",
    height: altura*0.4,
    width: anchoDefecto*0.9,
    colNames:['Cuenta',
              'Subcuenta',
              'Importe',
              'Signo',
              'Clave',
              'Documento',
              'Doc. Referencia',
              'Ampliación',
              'Extensión'],
    colModel:[
            {name:'intIdfCuenta',index:'intIdfCuenta', width:200, sorttype:"int", editable:true,editrules:{required:true}, edittype:'custom', 
                editoptions:{custom_element: myelemcuentas, custom_value:myvaluecuentas} },
            {name:'intIdfSubcuenta',index:'intIdfSubcuenta', width:200,editable: true,editrules:{required:true}, edittype:'custom', 
                    editoptions:{custom_element: myelemsubcuentas, custom_value:myvaluesubcuentas}},
            {name:'floatImporte',index:'floatImporte', width:200,editable: true,editrules:{required:true}, edittype:'text'},
            {name:'strSigno',index:'strSigno', width:200,editable: true, edittype:'custom',editrules:{required:true}, 
                editoptions:{custom_element: myelemsigno, custom_value:myvaluesigno} },
            {name:'strIdfClave',index:'strIdfClave', width:200,editable: true,editrules:{required:true}, edittype:'custom', 
                    editoptions:{custom_element: myelemclave, custom_value:myvalueclave} },
            {name:'strDocumento',index:'strDocumento', width:200,editable: true,editrules:{required:true},edittype:'text'},
            {name:'strDocumentoReferencia',index:'strDocumentoReferencia', width:200,editable: true,edittype:'text'},
            {name:'strAmpliacion',index:'strAmpliacion', width:200,editable: true,edittype:'text',editoptions: {
            dataInit: function (elem) { $(elem).focus(function () { this.select(); }) },
            dataEvents: [
                {
                    type: 'keydown',
                    fn: function (e) {
                        var key = e.charCode || e.keyCode;
                        if (key == 9)
                        {
                           procesarTabulacionAmpliacion();
                        }
                    }
                }
            ]
            }
            },
            {name:'strIdfTipoExtension',index:'strIdfTipoExtension', width:200,editable:true,edittype:'custom', 
                editoptions:{custom_element: myelemextension, custom_value:myvalueextension} }
            ],
    cellsubmit: "clientArray",  
    pager:"#pager",
    onSelectRow: function(id){          
        selectNextRow(id);

    }
});

onSelectRow 関数は次のとおりです。

function selectNextRow(id){     
     if (lastsel!=null && id!==lastsel && !myRowIsValid(lastsel) ) {
         if(lastsel!=null && id!==lastsel){
             jQuery('#rowed5').jqGrid('setSelection', lastsel);
         }
         return false;
     }else if(id && id!==lastsel){      
         newline = '0';         
        jQuery("#rowed5").saveRow(lastsel, false, 'clientArray');
        jQuery("#rowed5").editRow(id, false);

        lastsel=id;
        actsel = id;
        // ponemos foco
        $(getId("intIdfCuenta",actsel,true)).focus();
    }
}

次を使用して行情報を取得しようとします。

            var floatImporte = $("#rowed5").jqGrid('getCell', 'floatImporte');
            var localRowData = $("#rowed5").jqGrid('getLocalRow');

しかし、どちらの場合も、常に false になります。

解決策はありますか?

4

2 に答える 2

2

このメソッドgetLocalRowには1つのパラメーターがありますrowid。したがって、の正しい使用法getLocalRow

var localRowData = $("#rowed5").jqGrid('getLocalRow', id);

getLocalRowパラメータなしでgetLocalRow呼び出すとrowidundefinedは対応する行のデータを返しません。の場合はgetLocalRow戻りますfalse

于 2012-10-25T08:47:58.463 に答える
0

私は同じ問題を抱えており、fiddleを作成しました。行をクリックすると、いくつかの値を変更できます。問題は、ROWID が見つからないため、"getLocalRow" が常に false を返すことです。コードを少し調べてみると、jquery.jqGrid.src.js に次の行があります。

ind = this.p._index[stripPref(this.p.idPrefix, rowid)];

たとえば、this.p.idPrefix が "a_" の場合、rowid="a_jqg2" で呼び出されます。

私はそれを間違って使用していますか?

デニス

于 2015-11-02T13:25:46.987 に答える