0

私はjQuery 1.9.1でjqGrid 4.4.5を使用しており、サーバー側ではASP.NET MVC 4を使用しています(ただし、これは問題の一部ではないと思います)。

シンプルな jqGrid が正常に動作しており、それにシンプルなサブグリッドを追加しようとしています。サブグリッドを構成し、それをサーバー側の別のコントローラーに接続しました。サブグリッド データを表示する必要があるところまで、すべてが正常に動作しているようです。

最初のグリッド ロードは、コントローラーのメイン データ メソッドを呼び出し、json を取得して行を表示します。+ 記号をクリックすると、行が展開され、コントローラーのセカンダリ データ メソッドへのコールバックが発生します。2 番目のメソッドは、サブグリッド データを有効な json として返します (Google Chrome 開発ツールで確認しました)。サブグリッドが展開され、適切な行数と正しいヘッダーが表示されますが、セルに値が表示されません。

ここでオンライン ドキュメントとさまざまな提案を確認しましたが、何も機能していないようです。jsonReader の設定でかなり遊んでみましたが、役に立たないようです (repeatitems を true に設定するとまったく機能しません)。gridview を true から false に切り替えても、役に立たないようです。

どんな助けでも大歓迎です。

これは、サブグリッド コントローラー メソッドに対して行われる実際の呼び出しです。

/Schedule/SubGridData?nd_=1365975664423&id=1002200&InspectionScheduleId=1002200&ItemTypeId=1000003

これは、Google Chrome が呼び出しによって返されたと主張するデータです。

{"rows":[{"cell":["Tony\u0027s HomeBrew","Icky Beer"]},{"cell":["Tony\u0027s WorkBrew","Tasty Beer"]}]}

これはグリッド構成です:

    <script type="text/javascript">
    jQuery(document).ready(function () {
    jQuery('#GridDataBasic').jqGrid({
    autoencode:true,
    autowidth:true,
    caption:'Inspection Schedule',
    datatype:'json',
    jsonReader:{ repeatitems:false, id: 'InspectionScheduleId', subgrid: { root: 'rows', repeatitems: false, cell: 'cell', id: 'id' } },
    emptyrecords:'No record Found',
    gridview:false,
    height:'100%',
    loadui:'block',
    pager:'#pager',
    rowList:[10,15,20,50],
    rowNum:10,
    rowattr: function(rowData) {var dueDate = new Date(parseInt(rowData.DueDate.substr(6)));var nowDate = new Date();var colorDate = new Date(dueDate - (rowData.RedOffsetInMinutes * 60000));if (nowDate > colorDate) { return {'class': 'redOffsetColor'}; }colorDate = new Date(dueDate - (rowData.OrangeOffsetInMinutes * 60000));if (nowDate > colorDate) { return {'class': 'orangeOffsetColor'}; }colorDate = new Date(dueDate - (rowData.YellowOffsetInMinutes * 60000));if (nowDate > colorDate) { return {'class': 'yellowOffsetColor'}; }colorDate = new Date(dueDate - (rowData.GreenOffsetInMinutes * 60000));if (nowDate > colorDate) { return {'class': 'greenOffsetColor'}; }},
    viewsortcols:[true,'vertical',true],
    shrinkToFit:true,
    url:'/Schedule/IndexGridData',
    viewrecords:true,
    subGrid: true,
    subGridUrl : '/Schedule/SubGridData',
    subGridModel : [ { 
    name : [ 'Item Name','Item Description' ],
    width : [ 50,50 ],
    align : [ 'left','left' ],
    params : [ 'InspectionScheduleId','ItemTypeId' ]
     } ],
    colModel: [
    {
      name:'InspectionScheduleId',
      hidden:true,
      key:true,
      label:'InspectionScheduleId',
      sortable:false,
      index:'InspectionScheduleId'
    },{
      name:'ItemTypeId',
      hidden:true,
      label:'ItemTypeId',
      sortable:false,
      index:'ItemTypeId'
    },{
      name:'GreenOffsetInMinutes',
      hidden:true,
      label:'GreenOffsetInMinutes',
      sortable:false,
      index:'GreenOffsetInMinutes'
    },{
      name:'YellowOffsetInMinutes',
      hidden:true,
      label:'YellowOffsetInMinutes',
      sortable:false,
      index:'YellowOffsetInMinutes'
    },{
      name:'OrangeOffsetInMinutes',
      hidden:true,
      label:'OrangeOffsetInMinutes',
      sortable:false,
      index:'OrangeOffsetInMinutes'
    },{
      name:'RedOffsetInMinutes',
      hidden:true,
      label:'RedOffsetInMinutes',
      sortable:false,
      index:'RedOffsetInMinutes'
    },{
      name:'ItemTypeName',
      label:'Item Type',
      sortable:false,
      index:'ItemTypeName'
    },{
      align:'center',
      name:'DueDate',
      formatter:'date', formatoptions: {srcformat:'ISO8601Long', newformat:'m/d/Y H:i:s'},
      label:'Due Date',
      sortable:true,
      index:'DueDate'
    }
    ]
    });
    });
    </script>
4

2 に答える 2

0

subgridのプロパティには、jsonReaderを含める必要がrepeatitems: trueありfalseます。subgridプロパティのデフォルト値はすでに{root:"rows", repeatitems: true, cell:"cell"}です。したがって、subgridのプロパティを削除jsonReaderすると問題が解決すると思います。

于 2013-04-14T22:19:23.757 に答える
0

指定された関数のいずれかが存在しない場合、サブグリッド内のデータは (同様に) 表示されません。したがって、タイプミスをすると、空の行が表示されます。

afterSave: ReloadSubGrid, onError: UpdateFailed, delOptions:...
...
function ReloadSbuGrid(rowid, response) {
    ...
}

タイプミス: ReloadSbuGrid は ReloadSubGrid であるべきだった

于 2013-11-01T14:32:30.030 に答える