我正在开发一个网络应用程序,并正在寻找一种创建我自己的数据网格的方法。
我知道有很多很棒的脚本,都有各种花里胡哨的功能,但我需要自己的特定功能、CSS 样式以及在其中使用我自己的 ui 控件的能力。
真的,我唯一需要的是调整列大小的能力。 我并不关心标记是否不维护行结构或不具有语义,因为所有数据都将由 ajax 请求填充。
我在想一个可能的解决方案是让每一列成为一个 div。
有教程可以帮助我吗?
我建议使用带有一些增强功能的 jQuery UI 可调整大小。该插件实际上只专注于调整大小并支持完全自定义,因为您可以在任何情况下添加自己的回调函数。然而,默认情况下,该插件无法调整表头的大小,但我可以使其使用有效的 HTML 运行,并在调整大小时更新表的 COLGROUP 区域。
具体想法是:
插件初始化:
$(".resizable th").resizable({
handles: "e",
// set correct COL element and original size
start: function(event, ui) {
var colIndex = ui.helper.index() + 1;
colElement = table.find("colgroup > col:nth-child(" +
colIndex + ")");
// get col width (faster than .width() on IE)
colWidth = parseInt(colElement.get(0).style.width, 10);
originalSize = ui.size.width;
},
// set COL width
resize: function(event, ui) {
var resizeDelta = ui.size.width - originalSize;
var newColWidth = colWidth + resizeDelta;
colElement.width(newColWidth);
// height must be set in order to prevent IE9 to set wrong height
$(this).css("height", "auto");
}
});
并不是真正的教程,而是一个真正简单的示例,您可以使用:http://robau.wordpress.com/2011/06/09/unobtrusive-table-column-resize-with-jquery/