数据表用其作用域之外的数据替换变量
datatable replaces variable with data from outside its scope
我正在使用datatable .net来显示一些文件附件,现在我想在控制器中添加描述和编辑链接到我的操作,但它的行为真的很奇怪。
我有这个代码
"aoColumnDefs": [{
"fnRender": function (oObj) {
var id = oObj.aData[0];
var uploaded = oObj.aData[1];
var dosseirId = oObj.aData[2];
var contentLenght = oObj.aData[3];
var filename = oObj.aData[4];
var description = oObj.aData[5];
var contentType = oObj.aData[6];
var retVal = '<div>' + '<div>' + '<a href="' + GetAbsolutePath('Attachment/Download?id=' + id) + '">' + filename + '</a>' + '<a href="Delete" onclick="javascript:systematic_HTMLEditor.handleDelete(' + id + '); return false;"><img src="' + GetAbsolutePath('Content/remove-upload.png') + '" /> </a>' + '</div>' + '</div>';
return retVal;
},
"aTargets": [0],
"bSortable": true
}, {
"bVisible": false,
"aTargets": [1]
}, {
"bVisible": false,
"aTargets": [2]
}, {
"bVisible": false,
"aTargets": [3]
}, {
"bVisible": false,
"aTargets": [4]
},
{
"fnRender": function (oObj) {
var id = oObj.aData[0];
var uploaded = oObj.aData[1];
var dosseirId = oObj.aData[2];
var contentLenght = oObj.aData[3];
var filename = oObj.aData[4];
var description = oObj.aData[5];
var contentType = oObj.aData[6];
var retVal = id;
return retVal;
},
"aTargets": [6],
"bSortable": true
}
但是这给了我这个结果
Attachment Description Editlink
"attachment3.pdf" "i dag" "attachment3.pdf"
所以3列应该是附件的ID,但被翻译成结果从目标[0]这是attachment3.pdf,然后我尝试重命名很多变量没有任何结果,如果我改变,所以我不打印ID,但contentType
或contentLength
然后没有问题,正确的数据显示。我需要发布ID来创建一个编辑链接
这是第一部分的oObj.aDatas
内容
aData: Array[7]
0: 21
1: "12-10-2011 08:06:00"
2: 1
3: 81695
4: "attachment3.pdf"
5: "i dag"
6: "application/pdf"
length: 7
在这里,在第二部分,以及ID如何突然从前面的代码中获得这个值,我真的不明白。
aData: Array[7]
0: "<div><div><a href="/Attachment/Download?id=21">attachment3.pdf</a><a href="Delete" onclick="javascript:systematic_HTMLEditor.handleDelete(21); return false;"><img src="/Content/remove-upload.png" /> </a></div></div>"
1: "12-10-2011 08:06:00"
2: "1"
3: "81695"
4: "attachment3.pdf"
5: "i dag"
6: "application/pdf"
length: 7
我认为这里发生的是fnRender实际上改变了aData.oObj
的值。你需要做的是设置bUseRendered: false
"aoColumnDefs": [{
"fnRender": function (oObj) {
var id = oObj.aData[0];
var uploaded = oObj.aData[1];
var dosseirId = oObj.aData[2];
var contentLenght = oObj.aData[3];
var filename = oObj.aData[4];
var description = oObj.aData[5];
var contentType = oObj.aData[6];
var retVal = '<div>' + '<div>' + '<a href="' + GetAbsolutePath('Attachment/Download?id=' + id) + '">' + filename + '</a>' + '<a href="Delete" onclick="javascript:systematic_HTMLEditor.handleDelete(' + id + '); return false;"><img src="' + GetAbsolutePath('Content/remove-upload.png') + '" /> </a>' + '</div>' + '</div>';
return retVal;
},
"bUseRendered": false,
"aTargets": [0],
"bSortable": true
}, {
"bVisible": false,
"aTargets": [1]
}, {
"bVisible": false,
"aTargets": [2]
}, {
"bVisible": false,
"aTargets": [3]
}, {
"bVisible": false,
"aTargets": [4]
},
{
"fnRender": function (oObj) {
var id = oObj.aData[0];
var uploaded = oObj.aData[1];
var dosseirId = oObj.aData[2];
var contentLenght = oObj.aData[3];
var filename = oObj.aData[4];
var description = oObj.aData[5];
var contentType = oObj.aData[6];
var retVal = id;
return retVal;
},
"aTargets": [6],
"bSortable": true
}
相关文章:
- 如何替换数据属性中的特定字符串单词
- 用Promises返回的数据替换出现的文本
- 按数据属性循环元素并替换值
- 追加子数据 URI,替换 IE 中的其他对象
- jQuery:裁剪以删除图像数据并替换为新数据
- 需要帮助-用数据库中的数据替换DIV内容而不刷新(使用-jquery、hmlhttp、CI)
- 循环并用parseJSON数据替换CSS
- 替换不处理数据属性值
- 是否有任何功能可以合并两个JSON数据集并替换旧信息?(节点.JS)
- 在javascript中替换当前数据时出错
- jquery替换DIV数据,然后跟踪对它的点击
- Breeze不会用其真实数据替换Ref:节点
- 用新数据替换observableArray
- AJAX 数据 - 替换 HTML 与更新值属性
- Chrome扩展:用剪贴板数据替换文本区域中的选定文本
- 用从某个URL检索到的数据替换整个html-body内容
- 数据表用其作用域之外的数据替换变量
- 使用PHP和javascript将数据替换为json文件
- 如果ajax完成,用请求的数据替换html
- 用新数据替换附加的数据