Невозможно заполнить нижний колонтитул JqGrid информацией о пользовательских данных. - PullRequest
0 голосов
/ 28 декабря 2010

У меня проблемы с отображением информации нижнего колонтитула с помощью jqGrid.Я выполнил все необходимые шаги для настройки нижнего колонтитула.Запрос к серверу основан на некотором условии фильтра.Сервер возвращает JSON с соответствующей информацией «userdata».Ниже приведены данные JSON и javascript.

{
    "timeatt": [
        {
            "empnum" : "12345",
            "name" : "ABCDEFG",
            "shift" : "1",
            "postdate" : "12/27/10",
            "regular" : "40",
            "ot" : "8",
            "dbltime" : "0",
            "holiday" : "0",
            "vacation" : "0",
            "payrate" : "0" 
        },
        {
            "empnum" : "67890",
            "name" : "HIJKLMN",
            "shift" : "1",
            "postdate" : "12/27/10",
            "regular" : "32",
            "ot" : "0",
            "dbltime" : "0",
            "holiday" : "0",
            "vacation" : "8",
            "payrate" : "0" 
        } 
    ],
    "userdata": {
        "name": "Totals",
        "regular": "72",
        "ot": "8",
        "dbltime": "0",
        "vacation": "8",
        "holiday": "0"
    },
    "totalrecords" : "2" 
}

Информация jQGrid

$("#empinfo").jqGrid({
    datatype:'json',
    colNames:['Clock#','Name','PostDate','Shift','Regular','Over Time','Dbl Time',
              'Vacation','Holiday'],
    colModel:[{name:'empnum', index:'empNum', width:60},
              {name:'name', index:'name', width:200},
              {name:'postdate', index:'postdate', width:60,editable:false,
               hidden:true,editrules:{edithidden:false}},
              {name:'shift', index:'shift', width:60,editable:true,edittype:'text'},
              {name:'regular', index:'regular', width:70,editable:true,
               edittype:'text',align:"right", formatter: 'number'},
              {name:'ot', index:'ot', width:70,editable:true,edittype:'text',
               align:"right", formatter: 'number'},
              {name:'dbltime', index:'dltime', width:70,editable:true,
               edittype:'text',align:"right", formatter: 'number'},
              {name:'vacation', index:'vacation', width:70,editable:true,
               edittype:'text',align:"right", formatter: 'number'},
              {name:'holiday', index:'holiday', width:70,editable:true,
               edittype:'text',align:"right", formatter: 'number'}],
    scroll:1,
    scrollRows:true,
    height:300,
    editurl:'clientArray',
    footerrow:true,
    userDataOnFooter:true,
    altRows:true,
    onSelectRow: function(rowNum){
        if (rowNum && rowNum != lastSel) {
            $("#empinfo").saveRow(lastSel);
        }
        $("#empinfo").editRow(rowNum,true);
        lastSel = rowNum;
    },
  });

Я перепробовал все, что перечислено в демонстрационной версии jqGrid, но по некоторым причинам информация о userdata не заполняется.Кто-нибудь может мне помочь?

Спасибо SMargabandhu

Ответы [ 2 ]

0 голосов
/ 06 января 2012

то же имя столбцов в (colModel) для возврата пользовательских данных, пример:

userdata = new {hours = lista.Sum (x => x.Horas) .ToString (), function = "Total HH:"}

0 голосов
/ 29 декабря 2010

Прежде всего вы должны удалить запятую перед }); в конце вашего кода.Ваш код точно не полный.Например, параметр url не определен, поэтому я полагаю, что запятая происходит от сокращения реального кода.

О вашей главной проблеме.Вы должны включить jsonReader в определение jqGrid, чтобы иметь возможность отображать данные JSON, которые вы опубликовали.jsonReader может быть следующим:

jsonReader: {
    repeatitems: false,
    root:'timeatt',
    page: function (obj) { return 1; },
    total: function (obj) { return 1; },
    records: function (obj) { return obj.length; }
}

После этого данные будут отображаться включительно, будет отображаться 'userdata' (см. здесь )

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