Thanks for all the input. I really read the docs. There were heaps of 
mistakes in my code. Now solved and for what its\worth I append the working 
code. Once again Thanks guys!
VIEW
{{extend 'layout.html'}}
 
<script type="text/javascript">
 jQuery(document).ready(function(){

 $('#treeGrid').jqGrid({

    url: "{{=URL(r=request,f='call',args=['json','treet'])}}",

    contentType: "application/json; charset=utf-8",
    postData:[],
    datatype: "json",
    height: "auto",
    mType: 'GET',
    treeGridModel: 'adjacency',
    colNames: [ 'id', 'Prestations', 'neigh'],
    colModel: [
        {name: 'id', width: 100, key: true, hidden: false},
        {name: 'elementName', width: 785, sortable: false},
        {name: 'neighbourhood', width: 785, hidden: false}
        ],
    sortname: 'id',
    sortorder: "asc",            
    treeGrid: true,
    caption: "Menu",
    ExpandColumn: "elementName",
    ExpandColClick:true,
    jsonReader: { root: "row", cell:'', repeatitems: false, userdata: 
"userdata"},
    onSelectRow: function(rowid) {
    var row = $(this).getLocalRow(rowid);
    // do something with row
    alert("Name: " + row.elementName + " Hood: " + row.neighbourhood)
},
    
    autowidth: true
}); 
});
</script>

<div style="width:180px;">
<table id="treeGrid"/>


CONTROLLER

@service.json  
def tree():
    import json
    
response.files.append("http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/redmond/jquery-ui.css";)
    
response.files.append("http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.4/css/ui.jqgrid.css";)
    response.files.append("http://code.jquery.com/jquery-1.9.1.js";)
    
response.files.append("http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.js";)
    
response.files.append("http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.4/js/i18n/grid.locale-en.js";)
    
response.files.append("http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.4/js/jquery.jqGrid.src.js";)

    rows = db(db.neighbourhood.id > 0).select().as_list()
    concat = '{"response":['
    seq =1
    source = dict()
    vals = []
    for row in rows:       
        row['id'] = seq
        extra = {'neighbourhood': row.get('elementName'),}
        row.update(extra)
        print row
        vals.append(row)
        seq = seq+1
        innerrows = db(db.report.parent == row.get('id')).select().as_list()
        for innerrow in innerrows:
            innerrow.update(extra)
            print innerrow
            innerrow['id'] = seq
            vals.append(innerrow)
            seq = seq+1
    return dict(row=vals)

On Thursday, March 28, 2013 6:42:56 AM UTC+11, Willoughby wrote:
>
> Oops - completely missed the 'no javascript' part.
> It would appear it's not loading your jquery/jqgrid scripts.  Are you 
> loading them in layout.html?
> See this:
>
> http://www.trirand.com/jqgridwiki/doku.php?id=wiki:how_to_install
>
> On Monday, March 25, 2013 6:51:10 PM UTC-4, Nate wrote:
>>
>> Nothing in the console. Firebug reports
>>
>> No Javascript on this pageIf <script> tags have a "type" attribute, it 
>> should equal "text/javascript" or "application/javascript". Also scripts 
>> must be parsable (syntactically correct).
>>
>>
>> On Monday, March 25, 2013 11:15:31 PM UTC+11, Willoughby wrote:
>>>
>>> Do you get any errors in the console? That's the first place I usually 
>>> look...
>>>
>>> On Sunday, March 24, 2013 8:42:45 PM UTC-4, Nate wrote:
>>>>
>>>> Hi
>>>>
>>>>  I have a controller sending JSON to my view. I cannot get the data 
>>>> into the TreeGrid. The Json is coming down correctly (I placed it manually 
>>>> and it works). Running this code places the JSON on the webpage. 
>>>> Controller 
>>>> and View below.
>>>>
>>>> Help appreciated.
>>>> Regards
>>>> Nate
>>>>
>>>> CONTROLLER
>>>> @service.json
>>>> def get_report():
>>>>     import json
>>>>     
>>>>     rows = db(db.neighbourhood.id > 0).select().as_list()
>>>>     concat = '{"response":['
>>>>     seq =1
>>>>     for row in rows:
>>>>         row['id'] = seq
>>>>         concat = concat + json.dumps(row)+","        
>>>>         seq = seq+1
>>>>         innerrows = db(db.report.parent == 
>>>> row.get('id')).select().as_list()
>>>>         for innerrow in innerrows:
>>>>             innerrow['id'] = seq
>>>>             concat = concat + json.dumps(innerrow) + ","
>>>>             seq = seq+1
>>>>     concat = concat.strip( ',' )
>>>>     concat = concat + ']},grid;'
>>>>     return concat
>>>>
>>>>
>>>> VIEW
>>>> {{extend 'layout.html'}}
>>>> <script type="text/javascript">
>>>>  jQuery(document).ready(function(){
>>>>
>>>>  jQuery.getJSON("{{=URL(r=request,f='call',args=['json','get_report'])}}",
>>>>         function(msg){
>>>>            jQuery.each(msg, function(){ 
>>>>         topicjson = this;
>>>>
>>>>         $('#treeGrid').jqGrid({
>>>>             datastr: topicjson,
>>>>             datatype: "json",
>>>>             height: "auto",
>>>>             mType: 'GET',
>>>>             treeGridModel: 'adjacency',
>>>>             colNames: [/*"id",*/"Items","url"],
>>>>             colModel: [
>>>>                 {name: "elementName", width:250, resizable: false},
>>>>                 {name: "url",width:1,hidden:true}
>>>>                 ],
>>>>         treeGrid: true,
>>>>         caption: "Neighbourhood",
>>>>         ExpandColumn: "name",
>>>>         ExpandColClick:true,
>>>>         autowidth: true
>>>>         });
>>>>     })
>>>>     });    
>>>>      
>>>> });
>>>> </script>
>>>>
>>>> <div style="width:180px;">
>>>> <table id="treeGrid">
>>>> </table>
>>>>
>>>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to