Ajax里头可不可以用json拼接几张表的内容
Ajax里面可不可以用json拼接几张表的内容?我做的是右下角的弹出框,希望通过Ajax取得几张表的信息,拼接json
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("":"");
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append("",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]}");
return jsonBuilder.ToString();
[其他解释]ProcessingDs这只是其中一张表对吧,判断了ProcessingDs.Tables[0].Rows.Count > 0,还有别的表需要这样的判断。。这。。。怎么这么纠结!好像不对。。
[其他解释]我以[...]