You need to install firebug and check in the console log what is going on.
On Nov 10, 9:53 am, AsmanCom <d.as...@web.de> wrote: > tried it like this: > > app/models/plugin_jqgrid.py: > > var server_time=null; > jQuery(document).ready(function(server_time){jQuery("#% > (id)s").jqGrid({ > url:'%(callback)s&server_time'+escape(server_time), > > app/controllers/plugin_jqgrid.py: > > def data(): > sleep(10) > ... > test1 = request.vars.server_time or error() > tablename = request.vars.tablename or error() > ... > items = {} > items['userdata']=request.now > ... > ______________________ > > It seems not working, data is not returned by the controller. > > On 10 Nov., 16:37, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > replace > > > .... > > jQuery(document).ready(function(server_time){jQuery("#% > > (id)s").jqGrid({ > > url:'%(callback)s', > > .... > > > with > > > .... > > jQuery(document).ready(function(server_time){jQuery("#% > > (id)s").jqGrid({ > > url:'%(callback)s&server_time'+escape(server_time), > > .... > > > On Nov 10, 9:34 am, AsmanCom <d.as...@web.de> wrote: > > > > Hi Massimo, never mind. I do not want the variable passed with > > > jQuery.getJSON, but with the url: '% (callback) s', which is called > > > with LoadComplete: .trigger ("reload grid"). > > > Here's the code so far.. > > > > _____________________________________________________ > > > app/models/plugin_jqgrid.py: > > > > def > > > plugin_live_grid(table,fieldname=None,fieldvalue=None,col_widths={}, > > > > _id=None,columns=None,col_width=80,width=700,height=300): > > > """ > > > just do to embed the jqGrid with ajax search capability and > > > pagination > > > {{=plugin_jqgrid(db.tablename)}} > > > - table is the db.tablename > > > - fieldname, fieldvalue are an optional filter > > > (fieldname==fieldvalue) > > > - _id is the "id" of the DIV that contains the jqGrid > > > - columns is a list of columns names to be displayed > > > - cold_width is the width of each column > > > - height is the height of the jqGrid > > > """ > > > from gluon.serializers import json > > > _id = 'jqgrid_%s' % table > > > columns = columns or [x for x in table.fields if > > > table[x].readable] > > > colnames = [x.replace('_',' ').capitalize() for x in columns] > > > colmodel = [{'name':x,'index':x, > > > 'width':col_widths.get(x,col_width), 'sortable':True} \ > > > for x in columns if table[x].readable] > > > callback = URL(r=request,c='plugin_jqgrid',f='data', > > > vars=dict(tablename=table._tablename, > > > columns=','.join(columns), > > > fieldname=fieldname or '', > > > fieldvalue=fieldvalue, > > > )) > > > script=""" > > > var server_time=null; > > > jQuery(document).ready(function(server_time){jQuery("#% > > > (id)s").jqGrid({ > > > url:'%(callback)s', > > > datatype: "json", > > > colNames: %(colnames)s, > > > colModel:%(colmodel)s, > > > rowNum:10, > > > rowList:[20,50,100], > > > pager: '#%(id)s_pager', > > > onSelectRow: function(postdata) {web2py_ajax_page('get','/jqgrid2/ > > > default/tabs2/'+(postdata),null,'panel');}, > > > loadComplete: function () { > > > var server_time=jQuery("#%(id)s").getGridParam('userData'); > > > > setTimeout(function(){ > > > alert(server_time); > > > jQuery("#%(id)s").jqGrid().setGridParam({datatype:"json"}); > > > jQuery("#%(id)s").jqGrid().trigger("reloadGrid", > > > [{current:true}]); > > > > }, 1000); /* 1000..after 1 seconds */ > > > }, > > > > loadError: function () { > > > setTimeout(function(){ > > > > jQuery("#%(id)s").jqGrid().setGridParam({datatype:"json"}); > > > jQuery("#%(id)s").jqGrid().trigger("reloadGrid", > > > [{current:true}]); > > > > }, 15000); /* milliseconds (15seconds) */ > > > }, > > > > caption:'%(tablename)s', > > > viewrecords: true, > > > height:%(height)s, > > > loadui:"disabled"}); > > > jQuery("#%(id)s").jqGrid('navGrid','#%(id)s_pager', > > > {search:true,add:false,edit:false,del:false}); > > > jQuery("#%(id)s").setGridWidth(%(width)s,false);}); > > > """ % dict(callback=callback,colnames=json(colnames), > > > tablename=table._tablename.capitalize(), > > > colmodel=json(colmodel),id=_id,height=height,width=width) > > > return TAG[''](TABLE(_id=_id), > > > DIV(_id=_id+"_pager"), > > > SCRIPT(script)) > > > > _______________________________________________________ > > > > app/controllers/plugin_jqgrid.py: > > > > from random import randint > > > from time import sleep > > > > def error(): > > > raise HTTP(400) > > > > def data2():# for testing > > > if randint(1,3) == 1: > > > raise HTTP(400) > > > else: > > > return data2() > > > > def data(): > > > sleep(10) # for testing > > > "http://trirand.com/blog/jqgrid/server.php? > > > q=1&_search=false&nd=1267835445772&rows=10&page=1&sidx=amount&sord=asc&searchField=&searchString=&searchOper=" > > > from gluon.serializers import json > > > import cgi > > > tablename = request.vars.tablename or error() > > > columns = (request.vars.columns or error()).split(',') > > > rows=int(request.vars.rows or 25) > > > page=int(request.vars.page or 0) > > > sidx=request.vars.sidx or 'id' > > > sord=request.vars.sord or 'asc' > > > searchField=request.vars.searchField > > > searchString=request.vars.searchString > > > searchOper={'eq':lambda a,b: a==b, > > > 'nq':lambda a,b: a!=b, > > > 'gt':lambda a,b: a>b, > > > 'ge':lambda a,b: a>=b, > > > 'lt':lambda a,b: a<b, > > > 'le':lambda a,b: a<=b, > > > 'bw':lambda a,b: a.like(b+'%'), > > > 'bn':lambda a,b: ~a.like(b+'%'), > > > 'ew':lambda a,b: a.like('%'+b), > > > 'en':lambda a,b: ~a.like('%'+b), > > > 'cn':lambda a,b: a.like('%'+b+'%'), > > > 'nc':lambda a,b: ~a.like('%'+b+'%'), > > > 'in':lambda a,b: a.belongs(b.split()), > > > 'ni':lambda a,b: ~a.belongs(b.split())}\ > > > [request.vars.searchOper or 'eq'] > > > table=db[tablename] > > > if request.vars.fieldname: > > > dbset = > > > table._db(table[request.vars.fieldname]==request.vars.fieldvalue) > > > else: > > > dbset = table._db(table.id>0) > > > if searchField: > > > dbset=dbset(searchOper(table[searchField],searchString)) > > > orderby = table[sidx] > > > if sord=='desc': orderby=~orderby > > > limitby=(rows*(page-1),rows*page) > > > fields = [table[f] for f in columns] > > > records = dbset.select(orderby=orderby,limitby=limitby,*fields) > > > nrecords = dbset.count() > > > items = {} > > > items['userdata']=request.now > > > items['page']=page > > > items['total']=int((nrecords+(rows-1))/rows) > > > items['records']=nrecords > > > readable_fields=[f.name for f in fields if f.readable] > > > def f(value,fieldname): > > > r = table[fieldname].represent > > > if r: value=r(value) > > > try: return value.xml() > > > except: return cgi.escape(str(value)) > > > > items['rows']=[{'id':r.id,'cell':[f(r[x],x) for x in > > > readable_fields]} \ > > > for r in records] > > > return json(items) > > > ________________________________________ > > > > app/controllers/default.py: > > > > # -*- coding: utf-8 -*- > > > > ######################################################################### > > > ## This is a samples controller > > > ## - index is the default action of any application > > > ## - user is required for authentication and authorization > > > ## - download is for downloading files uploaded in the db (does > > > streaming) > > > ## - call exposes all registered services (none by default) > > > ######################################################################### > > > > def index(): > > > """ > > > example action using the internationalization operator T and flash > > > rendered by views/default/index.html or views/generic.html > > > """ > > > response.flash = T('Welcome to web2py') > > > return dict(message=T('Hello World')) > > > > def user(): > > > """ > > > exposes: > > > http://..../[app]/default/user/login > > > http://..../[app]/default/user/logout > > > http://..../[app]/default/user/register > > > http://..../[app]/default/user/profile > > > http://..../[app]/default/user/retrieve_password > > > http://..../[app]/default/user/change_password > > > use @auth.requires_login() > > > @auth.requires_membership('group name') > > > @auth.requires_permission('read','table name',record_id) > > > to decorate functions that need access control > > > """ > > > return dict(form=auth()) > > > > def download(): > > > """ > > > allows downloading of uploaded files > > > http://..../[app]/default/download/[filename] > > > """ > > > return response.download(request,db) > > > > def call(): > > > """ > > > exposes services. for example: > > > http://..../[app]/default/call/jsonrpc > > > decorate with @services.jsonrpc the functions to expose > > > supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv > > > """ > > > session.forget() > > > return service() > > > > def jqgrid(): > > > """ > > > exposes services. for example: > > > http://..../[app]/default/call/jsonrpc > > > decorate with @services.jsonrpc the functions to expose > > > supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv > > ... > > read more »