我正在使用 DataTables 创建一个表。初始化表格后,我想更改一些设置来控制其中一列的呈现方式,如下所示:
var st = mytable.dataTable().fnSettings();
$.extend(st.aoColumns[2], {
"mRender": function (val, type, row) {
return "xxx";
}
});
但是当我加载页面时,我得到:“对象不是 DataTables.js:181 中的函数(下面标有“这是错误行”):
/* Cache the data get and set functions for speed */
var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null;
var mData = _fnGetObjectDataFn( oCol.mData );
oCol.fnGetData = function (oData, sSpecific) {
var innerData = mData( oData, sSpecific );
if ( oCol.mRender && (sSpecific && sSpecific !== '') ) {
return mRender( innerData, sSpecific, oData ); <== this is the error line
}
return innerData;
};
似乎某些缓存机制假设 mRender 值在初始化后不会更改,但实际上 DataTables 允许通过 fnSettings 方法进行外部设置操作,该方法明确记录了它用于“外部操作”。
关于如何解决这个问题的任何想法?