兩種方式
一種寫擴展方法
$.extend($.fn.datagrid.methods, {
fixRownumber : function (jq) {
return jq.each(function () {
var panel = $(this).datagrid("getPanel");
//獲取最后一行的number容器,並拷貝一份
var clone = $(".datagrid-cell-rownumber", panel).last().clone();
//由於在某些瀏覽器里面,是不支持獲取隱藏元素的寬度,所以取巧一下
clone.css({
"position" : "absolute",
left : -1000
}).appendTo("body");
var width = clone.width("auto").width();
//默認寬度是25,所以只有大於25的時候才進行fix
if (width > 25) {
//多加5個像素,保持一點邊距
$(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).width(width + 5);
//修改了寬度之后,需要對容器進行重新計算,所以調用resize
$(this).datagrid("resize");
//一些清理工作
clone.remove();
clone = null;
} else {
//還原成默認狀態
$(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).removeAttr("style");
}
});
}
});
調用
$("#dg").datagrid({
onLoadSuccess : function () {
$(this).datagrid("fixRownumber");
}
});
以上抄來,沒有驗證
第二種方法,直接放到onLoadSuccess方法中,已經驗證
$("#dg").datagrid({
onLoadSuccess : function () {
var panel = $(this).datagrid("getPanel");
$(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).width(40);
}
});