Заполните столбец в результате выполнения математики для двух столбцов в jqGrid - PullRequest
2 голосов
/ 01 апреля 2010

Справочная информация: Наша компания выбрала инструмент рабочего процесса, который имеет некоторые "интересные" ограничения пользовательского интерфейса. jqGrid был определен как один из лучших способов преодолеть эти ограничения. Следовательно, ответы на этот вопрос должны быть ограничены функциональностью, доступной в пространстве jqGrid. Мне больно задавать этот вопрос, и я знаю, что у вас возникнет соблазн пойти по миллиону других путей, большинство из которых мы уже прошли. (

Вопрос: Может ли jqGrid заполнить столбец в результате выполнения математических операций над двумя другими столбцами. Источник этих двух столбцов находится под нашим контролем, поэтому мы можем «гарантировать», что числовые данные будут возвращены. Кроме того, результатом является то, что мы просто хотим отображать по требованию, но пока не храним. В приведенном ниже примере есть ли функция, которая позволяет заполнять столбец «итого» из следующего расчета: «сумма» * «налог»

Пример jqGrid javascript:

jQuery("#list3").jqGrid({
    url:'server.php?q=2',
 datatype: "json",
    colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
    colModel:[
     {name:'id',index:'id', width:60, sorttype:"int"},
     {name:'invdate',index:'invdate', width:90, sorttype:"date"},
     {name:'name',index:'name', width:100},
     {name:'amount',index:'amount', width:80, align:"right",sorttype:"float"},
     {name:'tax',index:'tax', width:80, align:"right",sorttype:"float"},  
     {name:'total',index:'total', width:80,align:"right",sorttype:"float"},  
     {name:'note',index:'note', width:150, sortable:false}  
    ],
    rowNum:20,
    rowList:[10,20,30],
    pager: '#pager3',
    sortname: 'id',
    viewrecords: true,
    sortorder: "desc",
    loadonce: true,
    caption: "Load Once Example"
});

1 Ответ

0 голосов
/ 01 апреля 2010

Вы хотите, чтобы это вычисление выполнялось при первой загрузке сетки? Если это так, вы можете указать функцию в качестве типа данных. Например:

datatype: function(postdata) {
    jQuery.ajax({
       url: 'example.php',
       data:postdata,
       dataType:"xml",
       complete: function(xmldata,stat){
          if(stat=="success") {
             var thegrid = jQuery("#list3")[0];

             // Loop over the XML one row at a time here,
             // Calculate total, and call addRowData to add it to the jqGrid
          }
       }
    });
},

В качестве альтернативы, если вы редактируете данные и хотите выполнить вычисление после завершения редактирования, не могли бы вы предоставить дополнительную информацию, например, тип выполняемого вами редактирования (встроенный, форма и т. Д.)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...