0
$("#list").jqGrid({
    url: '/modulos/carga/cargaServiciosTarifa.ashx',
    datatype: 'xml',
    mtype: 'GET',
    colNames: ['Precio Dia', 'Precio Hora','Unidad'],
    colModel: [
              { name: 'preciodia', index: 'preciodia', width: 100, align: 'center', editable: true, sortable: false },
              { name: 'preciohora', index: 'preciohora', width: 400, align: 'center', editable: true, sortable: false },
              { name: 'Unidad', index: 'TSI_Unidad', width: 100, align: 'center',            editable: true, edittype: 'select',
                      editoptions: { value: "Dia:Dia;Hora:Hora" }, sortable: true }
              ],
autoencode: true,
pager: '#pager',
rowNum: 20,
sortname: 'preciohora',
sortorder: 'asc',
sortable: true,
autowidth: false,
width: 733,
height: -1,
shrinkToFit: true,
viewrecords: true,
gridview: true,
caption: 'Listado Servicios asociados a Tarifa',
postData: {tarId: tarId.val()},
editurl: '/modulos/carga/cargaServiciosTarifa.ashx'
});


//Paginador
        jQuery("#list").jqGrid('navGrid',
            '#pager',
            {
                alerttext: "Seleccione un precio.",
                add: true, addtitle: "Crear precio",
                del: true, deltitle: "Eliminar precio",
                edit: true, edittitle: "Modificar precio",
                search: false, searchtitle: "Búsqueda",
                refresh: true,
                cloneToTop: true
            },
            { width: 360, resize: false, closeAfterEdit: true, recreateForm: true, viewPagerButtons: true },
            { width: 360, resize: false, closeAfterAdd: true, recreateForm: true, viewPagerButtons: true },
            { }, //Delete action
            { closeAfterSearch: true, closeOnEscape: true }
        );

2つのテキストボックスと1つの選択オプションがあり、選択(3番目の列)のオプション「Hora」を選択した場合に「PrecioDia」(最初のテキストボックス)列を無効にする方法と、「Precio」を無効にする方法を知りたい選択で「ホラ」を選択した場合の「Dia」!作成または編集するときにこれを行う方法はありますか(インライン編集なし、navGridを使用)?

colModel定義に追加できるように無効にされたhtmlのようなプロパティがありますか?

ありがとう。

4

1 に答える 1

1

changeselect要素でハンドラーを定義できると思います。ハンドラー内では、選択で現在選択されているオプションに基づいて、最初の入力フィールドを無効または有効にできます。フォーム編集を使用するため、最初の入力フィールドのIDは最初の列の名前と同じになります。さらに、フォームの初期化中に同じアクションを実行する必要があります。対応するコードは次のようになります。

editoptions: {
    value: "Dia:Dia;Hora:Hora",
    dataInit : function (elem) {
        setTimeout(function () {
            $("#preciodia").prop("disabled", $(elem).val() === "Hora");
        }, 50);
    },
    dataEvents: [
        {
            type: 'change',
            fn: function (e) {
                $("#preciodia").prop("disabled", $(this).val() === "Hora");
            }
        }
    ]
},
于 2012-11-07T16:50:16.047 に答える