0

jqGrid を使用してフッター情報を表示するのに苦労しています。フッターを設定するために必要なすべての手順に従いました。サーバー要求は、いくつかのフィルター条件に基づいています。サーバーは、適切な「ユーザーデータ」情報を含む json を返します。以下は、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 デモにリストされているすべてを試しましたが、何らかの理由で、「ユーザーデータ」情報が入力されていません。誰でも私を助けることができますか?

ありがとう

4

2 に答える 2

0

ユーザーデータを返すための(colModel)の列の同じ名前。例:

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

于 2012-01-06T12:45:46.010 に答える
0

まず});、コードの最後にあるコンマを削除する必要があります。あなたのコードは完全ではありません。たとえば、urlパラメーターは定義されていないため、コンマは実際のコードの削減に由来すると思います。

あなたの主な問題について。投稿した JSON データを表示できるようにするには、jqGrid 定義にjsonReaderを含める必要があります。次のjsonReaderことができます。

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

その後、データが表示'userdata'されます(ここを参照)

于 2010-12-29T00:07:55.903 に答える