带有 Fancybox 的 JqGrid - 获取单元格对象
JqGrid with Fancybox - get cell object
使用 jqGrid
中的以下内容:
colModel: [
{name:"",index:"",width:100},
{name:"diagnosis",index:"diagnosis",width:100,formatter:fancyBoxFormatter},
{name:"prescription", index:"prescription",width:100,formatter:fancyBoxFormatter},
{name:"tests",index:"tests",width:100,formatter:fancyBoxFormatter},
{name:"imaging",index:"imaging",width:100,formatter:fancyBoxFormatter},
{name:"generic",index:"generic",width:100,formatter:fancyBoxFormatter},
{name:"referral",index:"referral",width:100,formatter:fancyBoxFormatter},
{name:"management",index:"management",width:100,formatter:fancyBoxFormatter},
{name:"completed",index:"completed",width:100}
],
然后:
function fancyBoxFormatter(cellvalue, options, rowObject) {
var result,
link,
fancyBoxHTML,
fancyBoxContent;
link = "<a class=\"fancybox\" href=\"#data" + options.rowId + "\">" + cellvalue + "</a>";
fancyBoxContent = cellvalue;
fancyBoxHTML = "<div style=\"display:none\"><div id=\"data" + options.rowId + "\">" + fancyBoxContent + "</div></div>";
return link + fancyBoxHTML;
}
这会在 Fancybox 中为行中的所有单元格显示相同的内容(基于 rowID...)如何将此功能更改为单个单元格 ID,而不仅仅是整行?
请在所有关于jqGrid的问题中写上你使用(可以使用)的jqGrid的版本和你使用的fork (free jqGrid, commercial Guriddo jqGrid JS 或版本 <=4.7 的旧 jqGrid)。
自定义格式化程序fancyBoxFormatter
的options
参数包含rowId
、colModel
、gid
、pos
和rowData
属性(rowData
仅存在于免费的 jqGrid 分支中)。因此你可以使用,例如,
function fancyBoxFormatter (cellvalue, options) {
return "<a class=\"fancybox\" href=\"#data" +
options.rowId + "_" + options.colModel.name + "\">" + cellvalue + "</a>" +
"<div style=\"display:none\"><div id=\"data" +
options.rowId + "_" + options.colModel.name + "\">" +
cellvalue + "</div></div>";
}
此外,您必须修复第一列的 name
属性。不能使用空 name
(参见 name:""
)。您可以使用 any 唯一值 name
来保存 HTML5/CSS 中存在的规则(例如没有空格)。
我建议您另外从所有列中删除不需要的 index
属性和常用 width:100
选项。您可以使用 jqGrid 的 cmTemplate: {width: 100}
选项,而不是在每一列中放置 width:100
。
使用 jqGrid
中的以下内容:
colModel: [
{name:"",index:"",width:100},
{name:"diagnosis",index:"diagnosis",width:100,formatter:fancyBoxFormatter},
{name:"prescription", index:"prescription",width:100,formatter:fancyBoxFormatter},
{name:"tests",index:"tests",width:100,formatter:fancyBoxFormatter},
{name:"imaging",index:"imaging",width:100,formatter:fancyBoxFormatter},
{name:"generic",index:"generic",width:100,formatter:fancyBoxFormatter},
{name:"referral",index:"referral",width:100,formatter:fancyBoxFormatter},
{name:"management",index:"management",width:100,formatter:fancyBoxFormatter},
{name:"completed",index:"completed",width:100}
],
然后:
function fancyBoxFormatter(cellvalue, options, rowObject) {
var result,
link,
fancyBoxHTML,
fancyBoxContent;
link = "<a class=\"fancybox\" href=\"#data" + options.rowId + "\">" + cellvalue + "</a>";
fancyBoxContent = cellvalue;
fancyBoxHTML = "<div style=\"display:none\"><div id=\"data" + options.rowId + "\">" + fancyBoxContent + "</div></div>";
return link + fancyBoxHTML;
}
这会在 Fancybox 中为行中的所有单元格显示相同的内容(基于 rowID...)如何将此功能更改为单个单元格 ID,而不仅仅是整行?
请在所有关于jqGrid的问题中写上你使用(可以使用)的jqGrid的版本和你使用的fork (free jqGrid, commercial Guriddo jqGrid JS 或版本 <=4.7 的旧 jqGrid)。
自定义格式化程序fancyBoxFormatter
的options
参数包含rowId
、colModel
、gid
、pos
和rowData
属性(rowData
仅存在于免费的 jqGrid 分支中)。因此你可以使用,例如,
function fancyBoxFormatter (cellvalue, options) {
return "<a class=\"fancybox\" href=\"#data" +
options.rowId + "_" + options.colModel.name + "\">" + cellvalue + "</a>" +
"<div style=\"display:none\"><div id=\"data" +
options.rowId + "_" + options.colModel.name + "\">" +
cellvalue + "</div></div>";
}
此外,您必须修复第一列的 name
属性。不能使用空 name
(参见 name:""
)。您可以使用 any 唯一值 name
来保存 HTML5/CSS 中存在的规则(例如没有空格)。
我建议您另外从所有列中删除不需要的 index
属性和常用 width:100
选项。您可以使用 jqGrid 的 cmTemplate: {width: 100}
选项,而不是在每一列中放置 width:100
。