1

我有一个名为 movie_genres 的表:

| 流派 ID | 流派名称 |

我将从数据库中填充这些类型的组合框(Ext js)

...
/* 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 中使用 WebService 从数据库中以 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 + "}";
        }
    }

什么也没有发生,我的组合框是空的,没有流派,没有错误,没有响应,什么都没有......任何想法,我的代码有什么问题?

谢谢

编辑autoLoad: true像@allie提到的那样添加到商店定义中,现在我在萤火虫上得到一个错误说:

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.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat)....

我试图调试 GenresWebService 并且我在这一行得到了上面的错误:

string json = jss.Serialize(genres);

我不知道这实际上意味着什么:(

4

1 回答 1

0

如果没有回应,也没有请求?

如果将autoLoad:true添加到商店定义中是否有帮助?

于 2012-08-14T15:59:06.830 回答