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 [email protected].
For more options, visit https://groups.google.com/d/optout.