Ajax里面可不可以用json拼接几张表的内容?
我做的是右下角的弹出框,希望通过Ajax取得几张表的信息,拼接json的方式,然后返回json拼接的信息。但是似乎行不通的。求高手指教!或者我可以换种方式。
------最佳解决方案--------------------在拼接json的时候加上引号试试,并且将他们转为字符串
比如
"\"title\":\"" + Convert.ToString(row["FlowInCapation"]) + "\",\"date\":\"" + Convert.ToString(row["StartTime"]) + "\"";
------其他解决方案--------------------写个通用的,把DataSet 整个转成json格式的方法(注意会影响json格式的字符),统一处理空表或空值的情况
------其他解决方案--------------------对了,考虑到表的字段名不要暴露的情况,最好再写个方法,先把DataTable的字段名统一改了,开发时备注一下和原字段名的对应关系
------其他解决方案--------------------你ajax调用自己写的方法还不是愿意返回什么数据就返回什么数据吗?既然能返回一张表的数据那么肯定能返回多张表的数据的
------其他解决方案--------------------传输时就是字符串嘛,想怎么拼就这么拼
------其他解决方案--------------------
但是在Ajax里面取数据的时候,要取四张表的数据,肯定有某个表的数据是空的情况,那么js里面的(比方说:data[i].title,就报错,对象为空什么的)。
------其他解决方案--------------------
那你服务器端 在传的时候如果没有值 就给那个赋值一个空字符串 那这样就不会报错了呀
------其他解决方案--------------------这是Ajax里面的:
------其他解决方案--------------------
Ajax
Js
------其他解决方案--------------------
我截图了,能不能帮忙看看?
------其他解决方案--------------------不管几张表,在后台处理好了,给AJAX一个统一的获取接口
------其他解决方案--------------------ison格式获取数据
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{\"total\":" + dt.Rows.Count + ",\"rows\":[");
for (int i = start; i < end; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");