Thanks for your effort, but it gives an empty page.. I will use two or more Grids at least one of them must keep the "editable" behaveure. But in this case it should work like your approach, controlling the form.
May i missed something..? Could you tell me how to set up the form? should the view look something like that?: {{=jqgrid_table}} <script> jQuery("#grid_id").jqGrid({ onSelectRow: function(postdata) { web2py_ajax_page('get','/myapp/default/form/'+ (postdata),null,'my_form'); } }); </script> <div id='my_form'></div> {{=form}} Thank you in advance. Dieter Asman On 20 Mai, 14:54, Jason Lotz <jayl...@gmail.com> wrote: > You could try passing SCRIPT from the controller. > > ## View > {{extend 'layout.html'}} > <h1>This is the default/test.html template</h1> > {{=plugin_editable_jqgrid(db.jqgrid_table,grid_name='jqgrid_ > table',db_name='db')}} > {{=script}} > > ## Controller > def jqgrid_table_test(): > script = """jQuery(document).ready(function(){ > jQuery("#grid_id").jqGrid({ > onSelectRow: function(postdata) > {web2py_ajax_page('get','/myapp/default/form/'+ > (postdata),null,'my_form'); }});""" > return SCRIPT(script) > > I haven't tested this so let me know if it works out for you. > > I am only using a single grid for my app so I actually included the > onSelectRow event to /models/jqgrid_plugin. The function > plugin_jqgrid() is where the default jqgrid script is retrieved when > the {{=plugin_jqgrid(db.table,columns=[...])}} is called. If you do it > this way you will want to add it to the .jqGrid({ }) parameters not in > the 'navGrid', 'toolbar' or other extended option parameters. > > Jay > > On May 20, 8:47 pm, AsmanCom <d.as...@web.de> wrote: > > > Could you help me setting this up too? > > > This is the view: > > > {{extend 'layout.html'}} > > <h1>This is the default/test.html template</h1> > > {{=jqgrid_table}} > > jQuery("#grid_id").jqGrid({ > > onSelectRow: function(postdata) { > > web2py_ajax_page('get','/myapp/default/form/'+ > > (postdata),null,'my_form'); > > } > > > }); > > > This is the Controller: > > > def jqgrid_table_test(): > > return > > dict(jqgrid_table=plugin_editable_jqgrid(db.jqgrid_table,grid_name='jqgrid_ > > table',db_name='db')) > > > def form(): > > id = request.args[0] > > form=FORM(TABLE(TR("Your > > name:",INPUT(_type="text",_name="name",requires=IS_NOT_EMPTY())), > > TR("Your > > email:",INPUT(_type="text",_name="email",requires=IS_EMAIL())), > > TR("Admin",INPUT(_type="checkbox",_name="admin")), > > > TR("Sure?",SELECT('yes','no',_name="sure",requires=IS_IN_SET(['yes','no'])) > > ), > > TR("Profile",TEXTAREA(_name="profile",value="write > > something here")), > > TR("",INPUT(_type="submit",_value="SUBMIT")))) > > if form.accepts(request.vars,session): > > response.flash="form accepted" > > elif form.errors: > > response.flash="form is invalid" > > else: > > response.flash="please fill the form" > > return dict(form=form,vars=form.vars) > > > ################################################ > > > The JQGrid works, but underneath the Grid i only see the following > > text: > > jQuery("#grid_id").jqGrid({ onSelectRow: function(postdata) > > { web2py_ajax_page('get','/core/default/form/'+ > > (postdata),null,'my_form'); } }); > > > It would be very nice if you could help me gettin this to work. > > Thank you in advance. > > > Dieter Asman > > > On 17 Mai, 08:22, Jason Lotz <jayl...@gmail.com> wrote: > > > > Thanks mdipierro!! > > > > I actually saw that in the header of the generated page but didn't put > > > it together. For what ever reason, trying to call web2py_component > > > from another function wouldn't work, but calling web2py_ajax_page > > > directly worked! > > > > Working code: > > > > jQuery("#grid_id").jqGrid({ > > > onSelectRow: function(postdata) { > > > web2py_ajax_page('get','/Test/default/a_form/'+ > > > (postdata),null,'my_form'); > > > } > > > > }); > > > > Jay > > > > On May 17, 2:35 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > This is the definition of web2py_component > > > > > function web2py_component(action,target) > > > > { > > > > jQuery(document).ready(function() > > > > { web2py_ajax_page('get',action,null,target); }); > > > > > } > > > > > I think you just want to call web2py_ajax_page instead of > > > > web2py_component. > > > > > On May 16, 11:50 pm, Jason Lotz <jayl...@gmail.com> wrote: > > > > > > I was using an iframe to show the details of a selected row from > > > > > jqgrid. Which worked. However I realized that it is a pain to get > > > > > iframe to recognize parent size so resizing produces an awkward > > > > > looking form. I came across web2py LOAD helper and thought it to be a > > > > > good fix to my frame resizing issue. > > > > > > I'm trying to change a LOAD(form) based on the row_id from a selected > > > > > row in jqgrid. Using the jqgrid event onSelectRow I'm trying to > > > > > trigger web2py_component to reload the form. > > > > > > I came up with a test link to update the form, which worked. > > > > > > <a href="#" > > > > > onclick="web2py_component('{{=URL(...)}}','my_form');">Load Page 3</a> > > > > > {{=LOAD('default','a_form/1',ajax=True,target='my_form')}} > > > > > > If possible I would like to get jqgrid to trigger the same > > > > > web2py_component feature. > > > > > > My latest failed attempt was something like > > > > > > jQuery(document.ready(function(){ > > > > > onSelectRow: function() > > > > > { jQuery("#my_form").trigger('web2py_component',['/Test/default/ > > > > > a_form/'+(postdata),'my_form']);} > > > > > ;}) > > > > > > Is it possible to trigger web2py_component function or LOAD helper > > > > > without an action input (button or link)? > > > > > > Jay > >