日期:2014-05-17  浏览次数:20377 次

Ajax里面可不可以用json拼接几张表的内容?
我做的是右下角的弹出框,希望通过Ajax取得几张表的信息,拼接json的方式,然后返回json拼接的信息。但是似乎行不通的。求高手指教!或者我可以换种方式。

------最佳解决方案--------------------
在拼接json的时候加上引号试试,并且将他们转为字符串

比如

"\"title\":\"" + Convert.ToString(row["FlowInCapation"]) + "\",\"date\":\"" + Convert.ToString(row["StartTime"]) + "\"";

------其他解决方案--------------------
写个通用的,把DataSet 整个转成json格式的方法(注意会影响json格式的字符),统一处理空表或空值的情况
------其他解决方案--------------------
对了,考虑到表的字段名不要暴露的情况,最好再写个方法,先把DataTable的字段名统一改了,开发时备注一下和原字段名的对应关系
------其他解决方案--------------------
你ajax调用自己写的方法还不是愿意返回什么数据就返回什么数据吗?既然能返回一张表的数据那么肯定能返回多张表的数据的
------其他解决方案--------------------
传输时就是字符串嘛,想怎么拼就这么拼
------其他解决方案--------------------
引用:
你ajax调用自己写的方法还不是愿意返回什么数据就返回什么数据吗?既然能返回一张表的数据那么肯定能返回多张表的数据的

但是在Ajax里面取数据的时候,要取四张表的数据,肯定有某个表的数据是空的情况,那么js里面的(比方说:data[i].title,就报错,对象为空什么的)。
------其他解决方案--------------------
引用:
引用:你ajax调用自己写的方法还不是愿意返回什么数据就返回什么数据吗?既然能返回一张表的数据那么肯定能返回多张表的数据的
但是在Ajax里面取数据的时候,要取四张表的数据,肯定有某个表的数据是空的情况,那么js里面的(比方说:data[i].title,就报错,对象为空什么的)。

那你服务器端 在传的时候如果没有值  就给那个赋值一个空字符串 那这样就不会报错了呀
------其他解决方案--------------------
这是Ajax里面的:
引用:
传输时就是字符串嘛,想怎么拼就这么拼


------其他解决方案--------------------
引用:
传输时就是字符串嘛,想怎么拼就这么拼

 Ajax
 Js
------其他解决方案--------------------
引用:
引用:
引用:你ajax调用自己写的方法还不是愿意返回什么数据就返回什么数据吗?既然能返回一张表的数据那么肯定能返回多张表的数据的
但是在Ajax里面取数据的时候,要取四张表的数据,肯定有某个表的数据是空的情况,那么js里面的(比方说:data[i].title,就报错,对象为空什么的)。
那你服务器端 在传……

我截图了,能不能帮忙看看?
------其他解决方案--------------------
不管几张表,在后台处理好了,给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("\":\"");