我正在使用jqGrid 4.5.3。版本我已经升级到免费 jqGrid 版本 4.13.6。升级后我面临以下问题
- 排序不适用于所有列
- 我想根据我设置的内容显示列大小
autoResizable: true
and autoresizeOnLoad: true
,仍然没有根据内容设置列宽
下面是我的jqGrid代码写在document.Ready
功能
jQuery("#jqgrid").jqGrid({
url: '@Url.Action("GetClassList", "Class")',
datatype: 'json',
height: 'auto',
colNames: ['ClassID','CourseID', '@objLocalizer["Class_Title_GridCol"]','@objLocalizer["ViewCourseDetails"]','@objLocalizer["ViewClassSchedule"]', '@objLocalizer["Class_AssignUser"]','@objLocalizer["ClassCreatedBy"]','@objLocalizer["ClassCreatedDate"]'],
colModel: [
{
name: 'Class.ClassID',
index: 'Class.ClassID',
sortable: true,
hidden: true
},
{
name: 'Class.CourseID',
index: 'Class.CourseID',
sortable: true,
hidden: true
},
{
name: 'ClassLang.Title',
index: 'ClassLang.Title',
sortable: true,
formatter: addLink,
},
{
name: 'CourseDetails',
index: 'CourseDetails',
sortable: false,
align: 'center',
title: false,
formatter:AddCourseDetailsLink
},
{
name: 'ClassSchedule',
index: 'ClassSchedule',
sortable: false,
align: 'center',
title: false,
formatter:AddViewClassScheduleLink
},
{
name: 'AssignUser',
index: 'AssignUser',
sortable: false,
align: 'center',
title: false,
formatter: AddAssignUserLink
},
{
name: 'UserName',
index: 'UserName',
align: 'center',
sortable: true
},
{
name: 'Class.WhenCreated',
index: 'Class.WhenCreated',
align: 'center',
formatter:'date',
sortable: true
}],
rowNum: 10,
rowList: [10, 20, 30],
pager: '#pjqgrid',
sortname: "Title",
sortorder: "desc",
toolbarfilter: true,
viewrecords: true,
multiSort: true,
sortable: true,
loadonce: true,
ignoreCase: true,
gridComplete: function () {
$("#progbar").css('width', '100%')
$("#progess").hide();
$("#grid").css("visibility", 'visible');
},
editurl: " ",
caption: "",
multiselect: false,
autowidth: true,
});
我还添加了以下功能来根据可用选项卡扩展网格
$(window).on('resize.jqGrid', function () {
$("#jqgrid").jqGrid('setGridWidth', $("#content").width());
})
HTML 标记
<div class="well well-sm well-light" id="content">
<div id='divResult'>
@{
await Html.RenderPartialAsync("~/ViewsBackend/Class/_ClassTab.cshtml");
}
</div>
<section id="widget-grid" class="">
<div class="row">
<article class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div id="grid">
<table id="jqgrid"></table>
<div id="pjqgrid"></div>
<br>
</div>
<br>
</article>
</div>
</section>
</div>
编辑1:-
自定义格式化程序
function addLink(cellvalue, options, rowObject) {
return "<a href='#' style='height:25px;width:120px;' type='button' onclick=CallActionMethod(" + "'" + rowObject.Class.ClassID + "'" + ")>" + rowObject.ClassLang.Title + "</a>";
}
function AddAssignUserLink(cellvalue, options, rowObject){
return "<button class='btn btn-xs btn-default' data-placement='center' title='@objLocalizer["Class_AssignUser"]' onclick='AssignUser(" + rowObject.Class.ClassID + ")'\"><i class='fa fa-users fa-lg' aria-hidden='true'></i></a>";
}
function AddCourseDetailsLink(cellvalue, options, rowObject){
return "<button class='btn btn-xs btn-default' data-placement='center' title='@objLocalizer["ViewCourseDetails"]' onclick='CourseDetails(" + rowObject.Class.CourseID + ")'\"><i class='fa fa-file fa-lg' aria-hidden='true'></i></a>";
}
function AddViewClassScheduleLink(cellvalue, options, rowObject){
return "<button class='btn btn-xs btn-default' data-placement='center' title='@objLocalizer["ViewClassSchedule"]' onclick='ViewClassSchedule(" + rowObject.Class.ClassID + ")'\"><i class='fa fa-calendar fa-lg' aria-hidden='true'></i></a>";
}
这些方法是从自定义格式化程序调用的
function CallActionMethod(cellvalue) {
$.ajax({
type: "POST",
url: '@Url.Action("SetClassDetailsClassID", "Class")',
data: { cellvalue: cellvalue },
success: function (data) {
document.location.href = "@Url.Action("ClassDetails", "Class")";
}
});
}
function ViewClassSchedule(ClassID){
$.ajax({
type: "POST",
url: '@Url.Action("SetClassDetailsClassID", "Class")',
data: { cellvalue: ClassID },
success: function (data) {
document.location.href = "@Url.Action("ClassSchedule", "Class")";
}
});
}
function AssignUser(ClassID) {
$.ajax({
type: "POST",
url: '@Url.Action("AssignUser", "Class")',
data: { classid: ClassID },
success: function (data) {
jQuery(".modal-content").html('');
jQuery(".modal-content").html(data);
jQuery("#AssignUserModal").modal('show');
}
});
}
function CourseDetails(CourseID)
{
$.ajax({
type: "POST",
url: '@Url.Action("setcourseid", "Course")',
data: { cellvalue: CourseID },
success: function (data) {
document.location.href = "@Url.Action("CourseDetails", "Course")";
}
});
}
jqGrid 更新版本的屏幕截图
Any help on this appreciated !