用bootstrap-talbe前端传值
首先直接传肯定是不行的;
其次做一个全局变量也不行,因为这里的问题的是用bootstrap-table进行生成的操作HTML,从这里datass = row 只能得到最后一次的值
最后是打算先转为字符串,传过去再转成对象。
但是直接进行JSON.stringify(row) 传值还是传不过去提示 EditViewById('{ ,这里没有细究,直接用了encodeURI解决,如下:
function actionFormatter(value, row, index) { var id = value; // datass = row; var datas = encodeURI(JSON.stringify(row)); var result = ""; result += "<a href='javascript:;' class='btn btn-xs green' onclick="EditViewById('" + datas + "', view='view')" title='查看'><span class='glyphicon glyphicon-search'></span></a>"; result += "<a href='javascript:;' class='btn btn-xs blue' onclick="EditViewById('" + datas + "')" title='编辑'><span class='glyphicon glyphicon-pencil'></span></a>"; result += "<a href='javascript:;' class='btn btn-xs red' onclick="DeleteByIds('" + id + "')" title='删除'><span class='glyphicon glyphicon-remove'></span></a>"; return result; }
总结:先将json对象转为字符串(JSON.stringify(obj))再将字符串编码(encodeURI(jsonstr)),传过去之后再先解码(decodeURI(jsonstr)),再转成json对象(JSON.parse(jsonstr))。
拓展:escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。
注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。