问题: ajax请求的数据在gridview上显示不出来
我被这个问题困扰了好几天,为啥呢?因为gridview它和table不一样,解析出来的html没有thead,手动为其添加thead之后,还要把tbody删掉,完了就是bootstrap-table的data死活显示不出来,我就卡在这里了,得到的是json对象,可显示却永远都是几条横线,我的内心在崩溃边缘,后来才知道ajax获取到数据之后还必须转换为json对象.
分析
- 首先, 要去检查
data-field
和DataTable
有没有对应,一定要对应,如果data-field找不到对应的列就会显示一条横线;这里需要仔细一点; - 其次就是获取到的json对象,就算
dataType:'json'
也要去转换JSON.parse(data.d)
.将其转换为一个对象.
解决
前台
很简单啊,我的天,昨晚我尝试了n种方法,熬夜到两点,我的心态崩了. 因为要控制列的显示,需要给列添加data-field,我建议不要用插件操作控件了,真的太费精神了.
var theadth = $('#<%=gv_Detail.ClientID%>').find("th");
theadth.find("div:eq(0):contains('文件编号')").parent("th").attr("data-field", 'FileID');
theadth.find("div:eq(0):contains('File')").parent("th").attr("data-field", 'FileID');
theadth.find("div:eq(0):contains('客户名称')").parent("th").attr("data-field", 'ClientName');
theadth.find("div:eq(0):contains('Customer')").parent("th").attr("data-field", 'ClientName');
theadth.find("div:eq(0):contains('产品描述')").parent("th").attr("data-field", 'ProdDescription');
theadth.find("div:eq(0):contains('Description')").parent("th").attr("data-field", 'ProdDescription');
theadth.find("div:eq(0):contains('FAPN')").parent("th").attr("data-field", 'FAPN');
theadth.find("div:eq(0):contains('FAPN')").parent("th").attr("data-field", 'FAPN');//or not
theadth.find("div:eq(0):contains('NPPP')").parent("th").attr("data-field", 'NPPP');
theadth.find("div:eq(0):contains('NPPP')").parent("th").attr("data-field", 'NPPP');//or not
theadth.find("div:eq(0):contains('图纸编号及版本')").parent("th"