Построить и загрузить дерево с данными из базы данных с помощью ExtJs - PullRequest
0 голосов
/ 18 мая 2011

Я пытаюсь построить древовидную панель (или просто простое дерево, которое мне просто нужно, чтобы она работала) и загрузить его данными из базы данных

Я пытался и пытался и пытался .. но не могусделайте это.

Может кто-нибудь показать мне, как мне это сделать, пожалуйста?

Мой 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 ]

1 голос
/ 18 мая 2011

сначала посмотрите на этот простой пример. У этого дерева есть магазин, который может считывать информацию из URL с помощью json scructure. Вы можете написать туда http://youdomain.com/yourscript.php. В yourscript.php вы должны прочитать информацию из базы данных, закодировать ее в JSON и запустить echo your_json; Это все. Постскриптум json пример

0 голосов
/ 28 октября 2011

Я решил это, создав свой собственный тип (без 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 };
}

надеюсь, это кому-нибудь поможет

...