you need to use web2y.js's component() function to have the same behaviour of the standard LOAD(). You're using jQuery.load() that is the jquery default way to replace an html element with something retrieved by the server, but it doesn't add all the bits that are needed to trap the links, for example.
However, what you're trying to do (reload a component every n seconds) is right built into the LOAD() helper. Use it this way: LOAD('default', 'thisgrid.load', ajax=True, target='mydiv', timeout=30000, times='Infinity') if you still need to use the function to load something "on demand", the js signature of the component() function is: $.web2py.component(remote, target, timeout, times [, element]) in your case, $.web2py.component('/appname/default/thisgrid.load', 'mydiv', 30000, 'Infinity') With the new web2py.js, however, you can just have the same functionality just creating a DIV with the proper data- attributes (this is what LOAD() does)... DIV(_id="mydiv", data=dict(w2p_remote=URL('default', 'thisgrid.load'), w2p_times='Infinity', w2p_timeout=30000)) On Saturday, August 3, 2013 4:10:49 AM UTC+2, Matt Grham wrote: > > Thanks a lot Niphlod. Actually that was the case. I started to use web2py > 2.4.6 but my app was built using web2py 1.99.7. I updated web2py.js, > web2py_ajax.html and layout.html. It works now. But if I want to refresh > the component in every 30 seconds, I am having a problem. Sometimes > pagination links or sorting links are not trapped. How can I refresh the > component properly? > > The following helps to refresh, but links are not trapped in some cases. > > in container.html: > > {{extend 'layout.html'}} > > {{=frag}} > > <script> > jQuery(document).ready(function(){ > var auto_refresh = setInterval( > function() > { > $('#mydiv').load('{{=URL(r=request,c='default',f='thisgrid.load' )}}'); > }, 30000); > }); > </script> > > in controller (target is added): > > def container(): > frag = LOAD('default', 'thisgrid.load', ajax=True, target='mydiv') > return dict(frag=frag) > > > On Friday, August 2, 2013 1:24:22 PM UTC-7, Niphlod wrote: >> >> did you start with an old (pre 2.6.0) app and updated web2py ? if yes, >> you need to overwrite your app's web2py.js with welcome/static/web2py.js >> I think that the most straightforward example is (assuming working on >> localhost, hence having generic views enabled): take your welcome, put this >> in default.py >> >> def thisgrid(): >> grid = SQLFORM.grid(db.your_table, paginate=5) #paginate defaults >> altered just to avoid having a huge test table filled for this test >> return dict(grid=grid) >> >> def container(): >> frag = LOAD('default', 'thisgrid.load', ajax=True) >> return dict(frag=frag) >> >> >> then access the container page. >> > -- --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.