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

解决方案 »

  1.   

    你ajax调用自己写的方法还不是愿意返回什么数据就返回什么数据吗?既然能返回一张表的数据那么肯定能返回多张表的数据的
      

  2.   

    但是在Ajax里面取数据的时候,要取四张表的数据,肯定有某个表的数据是空的情况,那么js里面的(比方说:data[i].title,就报错,对象为空什么的)。
      

  3.   

    不管几张表,在后台处理好了,给AJAX一个统一的获取接口
      

  4.   

    在拼接json的时候加上引号试试,并且将他们转为字符串比如"\"title\":\"" + Convert.ToString(row["FlowInCapation"]) + "\",\"date\":\"" + Convert.ToString(row["StartTime"]) + "\"";
      

  5.   

    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();
      

  6.   


    ProcessingDs这只是其中一张表对吧,判断了ProcessingDs.Tables[0].Rows.Count > 0,还有别的表需要这样的判断。。这怎么这么纠结!好像不对。。
      

  7.   

    写个通用的,把DataSet 整个转成json格式的方法(注意会影响json格式的字符),统一处理空表或空值的情况
      

  8.   

    对了,考虑到表的字段名不要暴露的情况,最好再写个方法,先把DataTable的字段名统一改了,开发时备注一下和原字段名的对应关系
      

  9.   

    我以[...]|[...]|[...]这样的方式拼了,在js里面用split取得分隔的字符串。搞定了~~~