我正在寻找一种在autoresize上设置日期工具栏搜索字段宽度的方法。
我尝试了
中的代码How to make html5 date field in search toolbar to respect column width
注释:
var serverResponse = {
"page": "1",
"records": "3",
"rows": [
{ "Id": "1", IsActive: "2015-01-09" },
{ "Id": "2", IsActive: "2015-01-05" },
{ "Id": "3", IsActive: "2015-01-21" }
]
},
dateTemplate = {
sorttype: "date",
formatter: "date",
formatoptions: {
srcformat: "Y-m-d",
reformatAfterEdit: true
},
autoResizing: { minColWidth: 50 },
autoResizable: true,
width: 100,
editoptions: {
maxlength: 10,
size: 10
},
editable: true,
searchoptions: {
sopt: ["eq", "ne", "lt", "le", "gt", "ge"],
size: 10,
clearSearch: false,
attr: { size: 10, type: "date", style: "width:11em;" }
}
},
$grid = $("#categorysummary");
$grid.jqGrid({
url: "/echo/json/",
datatype: "json",
mtype: "POST",
postData: {
json: JSON.stringify(serverResponse)
},
colNames: ["Active", "Second"],
colModel: [
{ name: "IsActive", template: dateTemplate },
{ name: "Second", width: 85 }
],
resizeStop: function (newWidth, iCol) {
var colModel = $(this).jqGrid("getGridParam", "colModel");
if ($("#gs_" + $.jgrid.jqID(colModel[iCol].name)).attr("type") === "date") {
$("#gs_IsActive").width(newWidth - 7); // - padding
}
},
jsonReader: {
id: "Id",
repeatitems: false
},
viewrecords: true
}).jqGrid("filterToolbar");
$(".ui-search-table input[type=date]").each(function() {
$(this).css("width", $(this).closest("th.ui-th-column").width() + "px");
});
的CSS:
<div class="container">
<table id="categorysummary"></table>
</div>
请参阅小提琴http://jsfiddle.net/10qwgejj/13/
双击活动列标题搜索元素中的列分隔线后,搜索工具栏中的列边框太大,列边框消失。
安德鲁斯。
答案 0 :(得分:1)
我实现了(请参阅the commit)新回调afterResizeDblClick
和新事件jqGridAfterResizeDblClick,这使解决方案变得非常简单。
它使用以下代码
var adjustSearchingDateField = function (cmName, newWidth) {
var $searchingField = $("#gs_" + $.jgrid.jqID(cmName));
if ($searchingField.attr("type") === "date") {
$searchingField.width(newWidth - 7); // - padding
}
};
...
resizeStop: function (newWidth, iCol) {
var colModel = $(this).jqGrid("getGridParam", "colModel");
adjustSearchingDateField(colModel[iCol].name, newWidth);
},
afterResizeDblClick: function (options) {
adjustSearchingDateField(options.cmName, options.cm.width);
},
...