JQgrid устанавливает высоту строки - PullRequest
9 голосов
/ 08 июля 2010

Я использую JqGrid с JavaScript. Я бы установил высоту каждой строки таблицы, но я не понимаю, как это сделать.

Это мой код:

 function jobList(){
var json=doShowAll(); 
alert("jobList() ==> php/get_job_status.php?value="+json);
jQuery("#jobList").jqGrid({
    url:'php/get_job_status.php?value='+json,
 datatype: "xml",
    colNames:['id','title', 'start', 'stop','completed'],
    colModel:[
     {name:'id',index:'id', width:15,hidden:true, align:"center"},
     {name:'title',index:'title', width:150, align:"center"},
     {name:'start',index:'start', width:350, align:"center", sorttype:"date"},
     {name:'fine',index:'fine', width:350, align:"center", sorttype:"date"},
     {name:'completed',index:'completed', width:120, align:"center",formatter:highlight},//il solitoformatter:infractionInFormatter},  
    ],
    //rowNum:8,
    //rowList:[8,10,20,30],
    pager: '#pagerJobList',
    sortname: 'id',
    viewrecords: true,
    sortorder: "desc",
 multiselect: false,
 subGrid: false,
 autowidth: true,
 height: 250,
 rowheight: 300,

 caption: "Job Progress",
  afterInsertRow: function(rowid, aData){
     jQuery("#jobList").jqGrid('setCell', rowid, 'completed', '', {
      background: 'red',
     color: 'white'
     });
  },
  onSelectRow: function(id){
        //alert(id);
        var title="";
        if (id) { 
         var ret = jQuery("#jobList").jqGrid('getRowData',id);
         title=ret.id;
         //alert(title);
        } 
        else { 
         alert("Please select row");
        }
        var json2=doShowAll(); 
        subGrid(json2,title);
     } 

 }
); 

}

Изменение высоты строк значения RowHeight не изменяется. Это мой результат таблицы

enter image description here

Большое спасибо.

Ответы [ 4 ]

13 голосов
/ 08 июля 2010

Вы можете установить высоту отдельных строк jqGrid или любого другого свойства CSS с помощью метода setRowData (см. эту статью вики ). Вы можете сделать это, например, в loadComplete:

$("#list").jqGrid({
    // ...
    loadComplete: function() {
        var grid = $("#list"),
            ids = grid.getDataIDs();

        for (var i = 0; i < ids.length; i++) {
            grid.setRowData(ids[i], false, { height : 20 + (i * 2) });
        }

        // grid.setGridHeight('auto');
    }
});

Вы можете увидеть рабочий пример здесь . Здесь вы можете видеть, что после изменения высоты строк может быть хорошей идеей изменить высоту сетки. После удаления комментария в строке с setGridHeight результаты будут выглядеть как this .

ОБНОВЛЕНИЕ На основании вопроса из комментария: Чтобы изменить высоту заголовка таблицы с помощью id = "list" , вы можете сделать следующее:

$("table.ui-jqgrid-htable", $("#gview_list")).css ("height", 30);

$("#gview_list") - это деление тела и заголовков сетки.

Вы можете увидеть результаты здесь .

5 голосов
/ 02 октября 2013

Это также работает:

.ui-jqgrid .ui-jqgrid-htable th {
    height: 2em !important;
}
.ui-jqgrid tr.jqgrow td{
    height: 1em !important;
}
1 голос
/ 02 июля 2015

В файле ui.jqgrid.css измените строку в разделе / ​​* body * / следующим образом:

.ui-jqgrid tr.jqgrow td {
    font-weight: normal; 
    overflow: hidden; 
    white-space: nowrap; 
    height: 22px; 
    padding: 0 2px 0 2px;
    border-bottom-width: 1px; 
    border-bottom-color: inherit; 
    border-bottom-style: solid;
}

white-space: изменяется с pre на nowrap.

0 голосов
/ 22 сентября 2012

Я решил эту проблему, установив это правило в таблице стилей CSS:

.grid .ui-jqgrid-htable th,
.grid .ui-jqgrid-btable .jqgrow td {
    height: 3em !important;
}
...