Alright now I see a little better what is going. Last night I wasn't
able to check what the jqgrid_editable_plugin really was. To my
surprise it is a very nice web2py plugin. My appologise for pushing
the jqgrid_plugin from web2py/plugins. Although a nice plugin this is
a very feature rich ready plugin.

Anyways, I slightly revised the plugin so that this will work for you.
I will mail it to your private mail.

Once you have replaced the new plugin files you should be able to use
it by implementing the following code.

## controller
def index():
    return
dict(jqgrid_table=plugin_editable_jqgrid(db.test,grid_name='grid_test',db_name='db',grid_load=URL(r=request,c='default',f='form'),target='my_form')))

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)


## view
{{extend 'layout.html'}}
<h1>This is the default/test.html template</h1>
{{=jqgrid_table}}
{{=LOAD('default','details',args=1,ajax=True,target='my_form')}}


// Notice the two extra options (grid_load='URL(...)',target='id') in
the controller default/index.
grid_load = url to the form controller function
target = This should match the LOAD(target='id')

Hope this works for you.. :)


On May 21, 1:43 am, Jason Lotz <jayl...@gmail.com> wrote:
> Can you explain a liitle more? You are actually seeing two forms in  
> the browser?
>
> If I understand you correctly upon first loading the page you get the  
> grid and a form with default id. When you select a row in the grid the  
> default form is not reloaded with the new id but a second form  
> appears. You see a grid and two forms. Is that right?
>
> Double check your id's. It could be that adding the extra jQuery
> ("#grid_id").jqGrid({ onSelectRow: .... }) in the view is conflicting  
> with a function in the plugin. I would try making a quick test using  
> the web2py jqgrid_plugin (which is a very nicely integrated plugin )  
> and see if you get the same issue. If not then it is a conflict with  
> your plugin script.
>
> It's passing 1:45am here so I will take a look at this editable_plugin  
> tomorrow morning and see if I can find something, if you haven't  
> solved it by then.
>
> On May 21, 2010, at 0:50, AsmanCom <d.as...@web.de> wrote:
>
>
>
> > You helped me a lot, man!
>
> > i´ve tried like you suggested, i only keeped the LOAD, but it´s the
> > same...
> > Page is loading the Grid, underneath the Grid rises "loading" and then
> > a new layer pops up with with the form in the default Template (Its
> > showed twice).
>
> > I´ve checked:
> >www.web2py.com/AlterEgo/default/show/252
>
> > But it doesent´t helped very much.
>
> > It seems I am stucked, right before finish... ;-(
>
> > Any help is appreciated, would so cool if I could get this done today.
>
> > Dieter Asman
>
> > On 20 Mai, 17:23, Jason Lotz <jayl...@gmail.com> wrote:
> >> web2py LOAD function will create generate <div
> >> id="target">Loading...</div> and fills your component. I'm sorry I  
> >> can't
> >> test it right now but it seems that by adding the <div></div> in your
> >> view and including the LOAD you are creating two form. Maybe try  
> >> remove
> >> your div and only keep the  LOAD.
>
> >> {{extend 'layout.html'}}
> >> <h1>This is the default/test.html template</h1>
> >> {{=jqgrid_table}}
> >> <script type="text/javascript">
> >> jQuery(document).ready(function()
> >> {jQuery("#grid_id").jqGrid({onSelectRow: function(postdata)
> >> {web2py_ajax_page('get','/myapp/default/form/'+
> >> (postdata),null,'my_form');}});
> >> </script>
> >> {{=LOAD('default','form',args=1,ajax=True,target='my_form')}}
>
> >> check out LOAD function dochttp://www.web2py.com/AlterEgo/default/
> >> show/252
>
> >> On 05/21/2010 12:09 AM, AsmanCom wrote:
>
> >>> Many thanks, it go�s in the right direction now.
>
> >>> I am using thehttp://app.ebansoftware.net/editable_jqgrid/default/
> >>> show_example
> >>> , but it is quite similar.
>
> >>> Now the is loaded is loaded with the default template and then a
> >>> second layer covers it with the form and the default Template(loaded
> >>> twice)
>
> >>> The code so far:
>
> >>> View:
>
> >>> {{extend 'layout.html'}}
> >>> <h1>This is the default/test.html template</h1>
> >>> {{=jqgrid_table}}
> >>> <script type="text/javascript">
> >>> jQuery(document).ready(function()
> >>> {jQuery("#grid_id").jqGrid({onSelectRow: function(postdata)
> >>> {web2py_ajax_page('get','/myapp/default/form/'+
> >>> (postdata),null,'my_form');}});
> >>> </script>
> >>> <div id="my_form"></div>
> >>> {{=LOAD('default','form',args=1,ajax=True,target='my_form')}}
>
> >>> 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 = SQLFORM(db.jqgrid_table)
> >>>      if form.accepts(request.vars, session):
> >>>          response.flash = 'form accepted'
> >>>      elif form.errors:
> >>>          response.flash = 'form has errors'
> >>>      else:
> >>>          response.flash = 'please fill out the form'
> >>>      return dict(form=form)
>
> >>> On 20 Mai, 16:55, Jason Lotz<jayl...@gmail.com>  wrote:
>
> >>>> Are you using the web2py jqgrid_plugin?
>
> >>>>http://web2py.com/plugins/default/jqgrid
>
> >>>> On 05/20/2010 11:53 PM, AsmanCom wrote:
>
> >>>>> can this be caused by the function, which set in /static/
> >>>>> plugin_editable_jqgrid/plugin_editable_jqgrid.js ?:
>
> >>>>>      onSelectRow: function(id){
> >>>>>        if(id&&    lastSel!=''&&    id!==lastSel){
> >>>>>           jQuery(grid_name).restoreRow(lastSel);
> >>>>>        }
> >>>>>        lastSel=id;
> >>>>>        jQuery(grid_name).editRow(id, true, '', '', '', '',
> >>>>> function(rowid, resultText){reload(grid_name,rowid,  
> >>>>> resultText);});
> >>>>>      },
> >>>>>       colNames:col_names,
> >>>>>       colModel:col_models,
> >>>>>       pager: pager,
> >>>>>       rowNum:10,
> >>>>>       rowList:[10,100,1000],
> >>>>>       sortorder: 'desc',
> >>>>>       multiselect: true,
> >>>>>       multiboxonly:true,
> >>>>>       viewrecords: true,
> >>>>>       editurl:edit_url,
> >>>>>       caption: caption
> >>>>>     });
>
> >>>>> Thank  you in advance.
>
> >>>>> Dieter Asman
>
> >>>>> On 20 Mai, 15:52, Jason Lotz<jayl...@gmail.com>    wrote:
>
> >>>>>> Try
>
> >>>>>> {{=jqgrid_table}}
> >>>>>> <script type="text/javascript">
> >>>>>> jQuery(document).ready(function(){
> >>>>>> jQuery("#grid_id").jqGrid({
> >>>>>>        onSelectRow: function(postdata) {
> >>>>>> web2py_ajax_page('get','/myapp/default/form/'+
> >>>>>> (postdata),null,'my_form');}});
> >>>>>> </script>
>
> >>>>>> On 05/20/2010 10:45 PM, AsmanCom wrote:
>
> >>>>>>> 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
>
> ...
>
> read more »

Reply via email to