有沒有一種方法,jqgrid的列寬根據該列的內容動態變化?我使用了shrinkToFit和autoWidth,但其中沒有一個適合我。我使用jqgrid 4.5.2。我已經搜索並閱讀了其他問題,但這些問題並不適合我。也許有一個小工具可以做到這一點。如果你幫我,我會很感激。jqgrid列寬自動
3
A
回答
-1
0
下面是如何實現基於列的jqGrid內容列寬。將此添加到gridComplete事件。
$(this).parent().append('<span id="widthTest" />');
gridName = this.id;
$('#gbox_' + gridName + ' .ui-jqgrid-htable,#' + gridName).css('width', 'inherit');
$('#' + gridName).parent().css('width', 'inherit');
var columnNames = $("#" + gridName).jqGrid('getGridParam', 'colModel');
var thisWidth;
// Loop through Cols
for (var itm = 0, itmCount = columnNames.length; itm < itmCount; itm++) {
var curObj = $('[aria-describedby=' + gridName + '_' + columnNames[itm].name + ']');
var thisCell = $('#' + gridName + '_' + columnNames[itm].name + ' div');
$('#widthTest').html(thisCell.text()).css({
'font-family': thisCell.css('font-family'),
'font-size': thisCell.css('font-size'),
'font-weight': thisCell.css('font-weight')
});
var maxWidth = Width = $('#widthTest').width() + 24;
//var maxWidth = 0;
// Loop through Rows
for (var itm2 = 0, itm2Count = curObj.length; itm2 < itm2Count; itm2++) {
var thisCell = $(curObj[itm2]);
$('#widthTest').html(thisCell.html()).css({
'font-family': thisCell.css('font-family'),
'font-size': thisCell.css('font-size'),
'font-weight': thisCell.css('font-weight')
});
thisWidth = $('#widthTest').width();
if (thisWidth > maxWidth) maxWidth = thisWidth;
}
$('#' + gridName + ' .jqgfirstrow td:eq(' + itm + '), #' + gridName + '_' + columnNames[itm].name).width(maxWidth).css('min-width', maxWidth);
}
$('#widthTest').remove();
工作的示例:
希望這有助於
保羅
0
這是一個很好的解決方案,但列寬跳轉到初始寬度時重-漿紗。 這是我作爲一個單獨的功能修改後的解決方案。旨在與shrinkToFit設置爲false,和火只是一次工作:
function setColumnWidths(gridName) {
if ($('#' + gridName).attr('columnsSet')=='true') return;
$('body').append('<span id="widthTest">WIDTHTEST</span>');
$('#gbox_' + gridName + ' .ui-jqgrid-htable,#' + gridName).css('width', 'inherit');
$('#' + gridName).parent().css('width', 'inherit');
var containerWidth=$('#' + gridName).width() - 20;
var columnNames = $("#" + gridName).jqGrid('getGridParam', 'colModel');
var thisWidth;
// Loop through Cols
for (var itm = 0, itmCount = columnNames.length; itm < itmCount; itm++) {
var curObj = $('[aria-describedby=' + gridName + '_' + columnNames[itm].name + ']');
var thisCell = $('#' + gridName + '_' + columnNames[itm].name + ' div');
$('#widthTest').html(thisCell.text()).css({
'font-family': thisCell.css('font-family'),
'font-size': thisCell.css('font-size'),
'font-weight': thisCell.css('font-weight')
});
var maxWidth = $('#widthTest').width() + 40;
//var maxWidth = 0;
// Loop through Rows
for (var itm2 = 0, itm2Count = curObj.length; itm2 < itm2Count; itm2++) {
var thisCell = $(curObj[itm2]);
$('#widthTest').html(thisCell.html()).css({
'font-family': thisCell.css('font-family'),
'font-size': thisCell.css('font-size'),
'font-weight': thisCell.css('font-weight')
});
thisWidth = $('#widthTest').width();
if (thisWidth > maxWidth) maxWidth = thisWidth;
}
if (maxWidth > containerWidth) maxWidth=containerWidth;
$("#" + gridName).jqGrid('setColProp','amount',{width: maxWidth});
var gw = $("#" + gridName).jqGrid('getGridParam','width');
$("#" + gridName).jqGrid('setGridWidth',gw,true);
$('#' + gridName + ' .jqgfirstrow td:eq(' + itm + '), #' + gridName + '_' + columnNames[itm].name).width(maxWidth).css('min-width', maxWidth);
}
$('#widthTest').remove();
$('#' + gridName).attr('columnsSet','true');
}
0
我不知道該提前或沒有回答,但下面是我的解決方案來實現其工作之一。只需提供列寬百分比,所有列的總和應達到100%。但我不知道如何處理在運行時添加/刪除列。
我正在爲此工作,並將全部更新。
columns: [
{ text: 'CheckBox', datafield: 'ProjectSubstantialPOUADetailsID', width: '10%' },
{ text: 'Area/Phase Substantial', datafield: 'SubstantialPOUA', width: '30%' },
{ text: 'Type', datafield: 'SubstantialTypeName', width: '15%' },
{ text: 'Achieved', datafield: 'DateAchieved', width: '15%', cellsformat: 'd', formatter: "date", formatoptions: { srcformat: "ISO8601Long", newformat: "m/d/Y" } },
{ text: 'PL Final', datafield: 'DateFinal', width: '15%', cellsformat: 'd' },
{ text: 'Warranty?', datafield: 'Warranty', width: '15%', columntype: 'checkbox' }
]
感謝 如是
相關問題
- 1. JQGrid列自動寬度
- 2. JQGrid列寬始終自動寬度
- 3. 在JQgrid中自動調整列寬度
- 4. 根據表格網格寬度自動調整jqgrid列寬度
- 5. 列寬jqgrid
- 6. ListView列寬自動
- 7. 使jqGrid的cb列更寬
- 8. 固定寬度的jqgrid列?
- 9. 組固定列寬的jqGrid
- 10. 調整列寬寬度在jqGrid的
- 11. EPPlus中的自動列寬
- 12. Flex列表自動寬度
- 13. DataGrid列自動寬度
- 14. ExtJS TreeGrid自動列寬
- 15. JavaFX 2自動列寬
- 16. 自動更改DataGridView列寬
- 17. C#ListView列寬自動
- 18. Crystal Reports:自動列寬
- 19. jqGrid動態列
- 20. jqgrid自定義列
- 21. 自動填充jqGrid和jQuery中的列
- 22. jQgrid 100%寬度
- 23. JqGrid +自動完成
- 24. JQGrid - 子列寬度小於標題列寬度
- 25. 自動調整寬度jqGrid內選項卡引導
- 26. WPF DataGrid列寬自動和滾動條
- 27. JQGrid - 設置展開列的寬度
- 28. jQGrid Pager_left寬度太小,只有幾列
- 29. 當列隱藏時,Jqgrid失去全寬
- 30. jqGrid - 如何重置網格列寬度?
一些進展後,我發現,如果我改變表格的佈局:固定表格的佈局:自動,列的寬度將適合與單元格的內容。但是當我這樣做時,標題不再與列對齊。如果可以的話請幫忙。 – Mark
供將來參考:http://stackoverflow.com/questions/2299441/jqgrid-column-auto-width – andale