Here's how I'm doing it in an app. I'm not using grid or smartgrid but 
rather a datatables.net table where each row has a linked edit button.  
There may be other (better?) ways to do it but this works for me.

Each record includes:
<td>{{=A(edit_icon, _href=URL(r=request,f='edit_item', args=[record_id]), 
_class="updateDialog")}}</td>


And then I've got javascript to intercept the clicks on the edit icon, 
figure out which record's edit page it links to and instead load that edit 
form within a jqueryui dialog.
<script type="text/javascript">
//Manage the display of the dialog for editing details.
$(function() {
    $("#edit_dialog").dialog({
        width: 600,
        height: 355,
        modal: true,
        //hide: 'slide',
        autoOpen: false
    });
    //opens the dialog whenever one of the edit icons is clicked
    $(document).on('click', 'a.updateDialog', function() {
        //get url to load from the clicked link's href
        var url = $(this).attr('href');

        //get the datatable row ID that we're editing
        var nTr = $(this).closest("tr").get(0); // key line that gets the 
closest TR
        aPos = vol_table.fnGetPosition( nTr ); // gets the position within 
the datatable
        
        //augment the url with the row index (aPos) because need to be able 
refer to it in the server response to be able to update correct row's 
display
        url = url+'/'+aPos;
        
        //load up the actual form from server & embed it within the 
dialog's body element (edit_form_loader)
        $.web2py.component(url, 'edit_form_loader');//request web2py's ajax 
to reload the component with the URL for this specific item's info

        $('#edit_dialog').dialog('open');//show the dialog
        return false;
    });
});


</script>



Good Luck!
~Brian

On Wednesday, June 18, 2014 9:45:08 AM UTC-5, Tomeu Roig wrote:
>
> I call a function that content a grid or smartgrid and need pass args and 
> (user_signature=True), how i can make it?
>
> now I use in controller response.js like:
>
> tab_history = """jQuery('#historial 
> a[href="#historico"]').click(function(){
>                     $.web2py.component("%s", target="historico");
>                 })""" % URL('albaranes', 'view_albs_cli.load', 
> args=[cliente_id,'historico'],user_signature=True)
>     response.js = tab_history
>
> It's works but i would like make the same in the view, it's possible?
>
> thanks.
>
> El lunes, 16 de junio de 2014 15:33:05 UTC+2, Anthony escribió:
>>
>> If you want to dynamically add a component in the browser, you cannot use 
>> the LOAD helper, which is a Python helper that is serialized on the server. 
>> Instead, use the $.web2py.component() Javascript function. Something like:
>>
>> <input type="button" value="Edit" onclick="$.web2py.component('{{=URL('
>> default', 'edit_page.load')}}', 'edit-form');">
>>
>> <div id="edit-form"></div>
>>
>> Anthony
>>
>> On Friday, June 13, 2014 7:47:34 PM UTC-4, Omri Levy wrote:
>>>
>>> Hi ,
>>>
>>> So I have a ticket system, and I want to allow user to edit the ticket 
>>> without leaving the page.
>>> I don't want to LOAD the edit_page and hide it, but only load it once 
>>> user is clicking on the ticket body.
>>> Another thing is, when user edits the ticket, he should again see 
>>> changes on the same page.
>>>
>>> Is this possible? I'm a bit confused, because LOAD works fine, but not 
>>> when using conditions with JS.
>>>
>>> Thanks.
>>>
>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
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/d/optout.

Reply via email to