带有Fancybox的JqGrid - 获取单元格对象

时间:2017-06-06 08:04:27

标签: jquery jqgrid fancybox

使用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,而不仅仅是整行?

1 个答案:

答案 0 :(得分:1)

请在jqGrid中写下您使用(可以使用)的jqGrid的版本以及您使用的 fork free jqGrid,商业广告Guriddo jqGrid JS或版本中的旧jqGrid&lt; = 4.7)。

自定义格式化程序options的{​​{1}}参数包含fancyBoxFormatterrowIdcolModelgidpos属性(rowData仅存在于免费的jqGrid fork中)。因此,您可以使用,例如,

rowData

此外,您必须修复第一列的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:"",您可以使用任何唯一值来保存HTML5 / CSS中存在的规则(例如没有空格)。

我建议您另外从所有列中删除不需要的name属性和常见index选项。您可以使用jqGrid的width:100选项,而不是在每列中放置width:100