使用ASP.NET和SQL Server数据库的Json和Ext JS 3.4
我有一张叫做电影类型的桌子: |流派| id |流派|名称| 一个组合框(ExtJS),我将用数据库中的这些类型填充它使用ASP.NET和SQL Server数据库的Json和Ext JS 3.4,asp.net,json,web-services,sql-server-2008,extjs,Asp.net,Json,Web Services,Sql Server 2008,Extjs,我有一张叫做电影类型的桌子: |流派| id |流派|名称| 一个组合框(ExtJS),我将用数据库中的这些类型填充它 ... /* Remote data store */ var movie_genres = new Ext.data.Store({ reader: new Ext.data.JsonReader({ fields: ['genre_id', 'genre_name'], root: 'rows'
...
/* Remote data store */
var movie_genres = new Ext.data.Store({
reader: new Ext.data.JsonReader({
fields: ['genre_id', 'genre_name'],
root: 'rows'
}),
proxy: new Ext.data.HttpProxy({
url: '../GenresWebService.asmx/GetGenres'
})
});
var movie_form = new Ext.FormPanel({
url: 'movie-form-submit.aspx',
renderTo: 'myform',
frame: true,
title: 'Movie Information Form',
width: 400,
defaults: {
anchor: '100%'
},
items: [{
xtype: 'combo',
hiddenName: 'genre',
fieldLabel: 'Genre',
mode: 'remote',
store: movie_genres,
displayField: 'genre_name',
valueField: 'genre_id'
},
...
我正在使用ASP.NET中的Web服务从数据库中获取json格式字符串中的体裁
public class GenresWebService : System.Web.Services.WebService
{
[WebMethod]
public string GetGenres()
{
SqlConnection con = new SqlConnection(connectionString);
con.Open();
String sql = "SELECT genre_id, genre_name FROM movie_genres";
SqlDataAdapter da = new SqlDataAdapter(sql, con);
DataSet genres = new DataSet();
da.Fill(genres, "movie_genres");
JavaScriptSerializer jss = new JavaScriptSerializer();
string json = jss.Serialize(genres);
con.Close();
return "{rows:" + json + "}";
}
}
什么都没有发生,我的组合框是空的,没有类型,没有错误,没有响应,什么都没有。。。
有什么想法吗,我的代码怎么了
多谢各位
编辑
我在商店定义中添加了@allie提到的autoLoad:true
,现在我在firebug上得到一个错误,上面说:
Get http://localhost:12345/GenresWebService.asmx/GetGenres?_dc=1344964138589 500 Internal Server Error 17 ms.
firebug上的响应对错误的解释如下:
System.InvalidOperationException:序列化“System.Globalization.CultureInfo”类型的对象时检测到循环引用。
在System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat)
我已尝试调试GenresWebService,但在这一行出现了上面的错误:
string json = jss.Serialize(genres);
我不知道它实际上是什么意思:(如果没有响应,也没有请求
如果您将自动加载:true添加到商店定义中,会有帮助吗?只是为了澄清一下,响应是否为空?返回的状态码是什么?您可以发布调用Web服务后得到的响应吗?我正在使用firebug进行检查,但没有响应。这就是我所说的“响应为空”!!我在添加自动加载后编辑了我的问题:如你所说,如果你知道下一步要做什么,请让met知道。