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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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
>
>