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