1

MVC 2 プロジェクトでサブグリッドが有効になっている Jqgrid があります。サブグリッドは、ボタンのクリック時にデータを展開して入力します。ページの読み込み時にサブグリッド データを展開して表示したい。そこで、親グリッドの gridComplete イベントで exapandSubGridRow メソッドを呼び出しました。問題は、ページロード時にサブグリッド行が展開されることですが、データがないため、親グリッド行の下に空の行が表示されます。これが私のコードです。誰でも問題を解決するのを手伝ってくれますか。

<script type="text/javascript">
   jQuery(document).ready(function () {
        jQuery("#list").jqGrid({
            url: '/jqgrid/DynamicGridData/',
            datatype: 'json',
            mtype: 'GET',
            colNames: ['SurveyQnGrpId', 'SurveyQnGroup1'],
            colModel: [
              { name:'SurveyQnGrpId', index:'SurveyQnGrpId', width:40, align:'left' },
              { name:'SurveyQnGroup1',index: 'SurveyQnGroup1',width: 400,
                align: 'left'}],
            pager: jQuery('#pager'),
            rowNum: 10,
            rowList: [5, 10, 20, 50],
            sortname: 'SurveyQnGrpId',
            sortorder: "SurveyQnGroup1",
            viewrecords: true,
            caption: 'My first grid',
            subGrid: true,
            subGridUrl: '/jqgrid/InnerGridData/',
            subGridModel: [{
                name: ['SurveyQnGrpId','SurveyQnId', 'SurveyQn', 'SurveyQnCategory',
                       'MandatoryQn','RadioOption3'],
                width: [10,10, 100, 10, 10,10],
                align: ['left', 'left', 'left', 'left'],
                params: ['SurveyQnGrpId']
            }],
            gridComplete: function () {
                var rowIds = $("#list").getDataIDs();
                $.each(rowIds, function (index, rowId) {
                        $("#list").expandSubGridRow(rowId); 
                }); 
            } 
        });
    });
</script>

前もってありがとう、アンシー

4

1 に答える 1

2

この質問がされた時点でこれが利用可能かどうかはわかりませんが、subGridOptionsプロパティがあり、オブジェクトを取ることがわかりました。そのオブジェクトのプロパティの 1 つが ですexpandOnLoad。これを true に設定すると、グリッドが読み込まれたときに親グリッドの行が展開されます。

jQuery(document).ready(function () {
    jQuery("#list").jqGrid({
        url: '/jqgrid/DynamicGridData/',
        datatype: 'json',
        mtype: 'GET',
        colNames: ['SurveyQnGrpId', 'SurveyQnGroup1'],
        colModel: [
          { name:'SurveyQnGrpId', index:'SurveyQnGrpId', width:40, align:'left' },
          { name:'SurveyQnGroup1',index: 'SurveyQnGroup1',width: 400,
            align: 'left'}],
        pager: jQuery('#pager'),
        rowNum: 10,
        rowList: [5, 10, 20, 50],
        sortname: 'SurveyQnGrpId',
        sortorder: "SurveyQnGroup1",
        viewrecords: true,
        caption: 'My first grid',
        subGrid: true,
        subGridOptions: { expandOnLoad: true },
        subGridUrl: '/jqgrid/InnerGridData/',
        subGridModel: [{
            name: ['SurveyQnGrpId','SurveyQnId', 'SurveyQn', 'SurveyQnCategory',
                   'MandatoryQn','RadioOption3'],
            width: [10,10, 100, 10, 10,10],
            align: ['left', 'left', 'left', 'left'],
            params: ['SurveyQnGrpId']
        }],
        gridComplete: function () {
            var rowIds = $("#list").getDataIDs();
            $.each(rowIds, function (index, rowId) {
                    $("#list").expandSubGridRow(rowId); 
            }); 
        } 
    });
});

参照: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:subgrid

于 2013-04-17T19:10:38.107 に答える