首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

在asp.net 中用过flexigrid的同志们,进来帮忙,200分送上,该如何处理

2012-05-27 
在asp.net 中用过flexigrid的同志们,进来帮忙,200分送上这些天一直在研究Jquery,发现里面的GRID控件真的很

在asp.net 中用过flexigrid的同志们,进来帮忙,200分送上
这些天一直在研究Jquery,发现里面的GRID控件真的很好很强大。于是乎想在项目中应用flexigrid.
在网上搜索了一下,有如下示例

参考一 数据源以XML返回的
参考二 采用MVC模式的


目前我的项目是用dataset得到的数据,就是说,按参考一中的方法,建立了一个Web Service ,然后把dataset转为json(而不是XML返回),但是这一步就无法成功,肯请各位大大出手帮忙!

[解决办法]
public static string GetJsonByDataset(DataSet ds)
{
if (ds == null || ds.Tables.Count <= 0 || ds.Tables[0].Rows.Count <= 0)
{
//如果查询到的数据为空则返回标记ok:false
return "{\"ok\":false}";
}
StringBuilder sb = new StringBuilder();
sb.Append("{\"ok\":true,");
foreach (DataTable dt in ds.Tables)
{
sb.Append(string.Format("\"{0}\":[",dt.TableName));

foreach (DataRow dr in dt.Rows)
{
sb.Append("{");
for (int i = 0; i < dr.Table.Columns.Count; i++)
{
sb.AppendFormat("\"{0}\":\"{1}\",", dr.Table.Columns[i].ColumnName.Replace("\"", "\\\"").Replace("\'", "\\\'"), FieldTypeFilter.ObjToStr(dr[i]).Replace("\"", "\\\"").Replace("\'", "\\\'"));
}
sb.Remove(sb.ToString().LastIndexOf(','), 1);
sb.Append("},");
}

sb.Remove(sb.ToString().LastIndexOf(','), 1);
sb.Append("],");
}
sb.Remove(sb.ToString().LastIndexOf(','), 1);
sb.Append("}");
return sb.ToString();
}
[解决办法]
http://blog.csdn.net/leisure55/archive/2009/11/12/4803312.aspx
[解决办法]
头晕了,帮你顶顶吧!
[解决办法]
友情帮顶
[解决办法]
帮顶,LZ在js上加个断点好好瞅瞅吧
[解决办法]
帮你看看
[解决办法]
太多了眼睛的都花了
[解决办法]
友情帮顶
[解决办法]
友情帮顶
[解决办法]
我是来拿分的
[解决办法]
看了下!还得研究下!!
[解决办法]
别的还看不出来,第一句肯定有问题,多了个new
$(document).ready(new function () {
[解决办法]
帮顶!!!!!!!!!!!!!!!!!!!!!!!!
[解决办法]
都是牛逼高手 我是菜鸟 分数真高 可惜没有我的份
[解决办法]
帮顶!!!
[解决办法]
前端eval 看看是不是出错了。再看下你输出的是否有 单引号 双引号之类的特殊字符啊
[解决办法]

探讨

删了也没有出数据。。。

------解决方案--------------------


这样可以了啊

调试下吧,你打开flexigrid.js, 找到625行:
success: function(data){g.addData(data);},
改成
success: function(data){alert(data); g.addData(data);},

看看有没有收到返回


[解决办法]
贴后台代码看下啦
[解决办法]
把626行:
error: function(XMLHttpRequest, textStatus, errorThrown) { try { if (p.onError) p.onError(XMLHttpRequest, textStatus, errorThrown); } catch (e) {} }
这句也改下:
error: function(XMLHttpRequest, textStatus, errorThrown) { alert(errThrown); try { if (p.onError) p.onError(XMLHttpRequest, textStatus, errorThrown); } catch (e) {} }

看下有没有出错信息

[解决办法]
alert(errorThrown);
[解决办法]
来学习
[解决办法]
mark 一下,回家再看看
[解决办法]
前台没错的,你贴过了,我这里也能显示

问题应该是在后台,贴后台代码看下

626行改成:
error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.responseBody); try { if (p.onError) p.onError(XMLHttpRequest, textStatus, errorThrown); } catch (e) {} }

看下什么错
[解决办法]
mark一下,刚好想用这个方法试下
[解决办法]
路过学习 ,和谐接分 , 友情帮顶~!
[解决办法]
研究了半天,好像是flexigrid的一个bug

flexigrid
第624,625行:
dataType: "xml",
success: function(data){eval("data="+$(data).text()); g.addData(data); },

[解决办法]
嗯,应该也算不上flexigrid的bug,其实和ms,jquery都有关系,是他们不能在一起配合工作,这个要说清楚还蛮复杂的。

如果要ms webservice返回json格式的结果,就必须在请求头中包含 "Content-Type:application/json", 但是在flexigrid中,调用ajax的时候没有加contentType参数,所以缺省的是"application/x-www-form-urlencoded", 这样webservice就只会返回xml格式的结果。

所以44楼的解决方法就是让jquery按照xml格式来解释返回的结果(dataType:"xml"), 在得到xml解析结果后,用$(data.text()从中取出根节点下的所有内容,这个就是返回的json字符串,然后用eval把它当js语句执行一下,赋值给data变量,这样data的内容就变成了想要的最终结果。

这个就是我研究下来的结果,楼主可以先试下是否可行

[解决办法]
可以,改用wcf吧,webservice老了,应该换成wcf
[解决办法]
没用过.帮顶!!!!!
[解决办法]
学习,帮顶!!!
[解决办法]
帮顶,顺便学习下!
[解决办法]
用ashx试试,比webService 方便
[解决办法]

探讨

LZ 可以用Newtonsoft.Json.Net20.dll这个插件直接转换为json格式
引入
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
用下面的方式

string jsonString= JsonConvert.SerializeObject(dataset[0], new IsoDateTimeConv……

[解决办法]
没用过.帮顶!!!!!
[解决办法]
你url 呼叫的是webService 这个好像错了 url: 'JSON/ProList.asmx/GetProList' 你没看打断点能不能断住 ,把你的WebService改成 用ashx试一试,调用webService的方法 不是url: 'JSON/ProList.asmx/GetProList' 这样写的,如果你用ashx话还不出,那就是 你生成json字符串的类型不对

------解决方案--------------------


出来了,用ashx可以,出来了

热点排行