使用ExtJs使用数据库中的数据构建和加载树

时间:2011-05-18 08:31:12

标签: extjs tree extjs4

我正在尝试构建一个treepanel(或者只是一个简单的树,我只需要它来工作)并使用数据库中的数据加载它

我一直在努力尝试尝试但是不能这样做。

有人可以告诉我,我该怎么办呢?

我的JSON:

{ 
    {Title:'yahoo Website',adress:'www.yahoo.com',Description:'Serveur yahoo'}, 
    {Title:'skype',adress:'skype.com',Description:'skype.com'},
    {Title:'bing',adress:'www.bing.com',Description:'microsoft bing'},
    {Title:'facebook',adress:'www.facebook.com',Description:'social network'},
    {Title:'Google',adress:'Google.com',Description:'Google';},
    {Title:'\' or 1=1--',adress:'\' or 1=1--',Description:'\' or 1=1--'} 
]

我的C#代码:

public class Interact : JsonRpcHandler {
    [JsonRpcMethod()]
    public string ReadAssets() { 
        clsDBInteract objDBInteract = new clsDBInteract(); 
        string result;
         try {
             result = objDBInteract.FetchAssetsJSON(); 
        } catch (Exception ex) {
             throw ex;
        }
     return result; 
}

2 个答案:

答案 0 :(得分:1)

首先看一下this简单的例子。这棵树有一个商店,可以通过json scructure读取url的信息。你可以在那里写http://youdomain.com/yourscript.php。在yourscript.php,您必须从数据库中读取信息,将其编码为JSON并运行echo your_json; 就这样。 附: json example

答案 1 :(得分:0)

我通过创建自己的类型(没有jayrock)来解决这个问题

我的树模型和商店:

Ext.define('TreeModel', {
extend: 'Ext.data.Model',
fields: [
        { name: 'text' },
        { name: 'id' },
        { name: 'descr' }

    ]
});

window.TreeStore = Ext.create('Ext.data.TreeStore', {
model: 'TreeModel',
root: Ext.decode(obj.TreeToJson()),
proxy: {
    type: 'ajax'
},
sorters: [{
    property: 'leaf',
    direction: 'ASC'
}, {
    property: 'text',
    direction: 'ASC'
}]
});

我的班级:

   public class TreeItem
{
    public string text { get; set; }

    public int id { get; set; }

    public string descr { get; set; }

    public string expanded { get; set; }

    public string leaf { get; set; }

    public List<TreeItem> children { get; set; }

}

然后我得到我的数据并像这样填充我的树

public string TreeToJson()
    {  
List<TreeItem> child = new List<TreeItem>();
        for (int i = 0; i < n; i++)
        {
            child.Add(new TreeItem() { text = t.AssetTree()[i].Item1, id = t.AssetTree()[i].Item2, ip = t.AssetTree()[i].Item3, descr = t.AssetTree()[i].Item4, expanded = "false", leaf = "true" });
        }

        TreeItem tree = new TreeItem() { text = "my root", id = 0, expanded = "true", leaf = "false", children = child };
}

希望它可以帮助某人