Jonathan,
I realize fixing this isn't a priority.
Could you retain the edit/view state in the session and retrieve it on
reload?
On Monday, June 18, 2012 8:48:50 PM UTC-4, Jonathan Lundell wrote:
>
> On Jun 18, 2012, at 5:17 PM, Massimo Di Pierro wrote:
>
> The grid uses the request args to figure out which grid page to visualize.
> There is only one set of request.args so if you have two grids each of them
> thinks the args are for them. You may get some un-intuitive behavior like
> navigating one grid affecting the other grid. The proper way to include two
> grids it by using LOAD.
>
>
> In my case the interaction is rather limited. If I switch pages in the
> secondary table, it loses whatever view/edit state the other table might be
> in, but it's not all that common a use case, and only admins use the page,
> so I can live with it.
>
> But yeah, I can see the problem.
>
>
> On Monday, 18 June 2012 15:02:31 UTC-5, Jonathan Lundell wrote:
>>
>> On Jun 18, 2012, at 3:06 PM, Massimo Di Pierro wrote:
>>
>> You cannot have two grids in the same page.
>>
>>
>> I'm using two grids on a page. It seemed all I needed to do was specify
>> different formnames and it seemed to work. The second table is pretty much
>> read-only, but it does have a paging control, and that works. What should I
>> expect to go wrong?
>>
>>
>> On Monday, 18 June 2012 06:09:24 UTC-5, rahulserver wrote:
>>>
>>> I tried to use two sqlform.grid in a web2py form. It does work as
>>> intended except for the problem that when I try to edit on of the form's
>>> row, other form's row with same Id also appears to be edited. How should i
>>> stop it?
>>> my controller:
>>> def CommitmentBrowse_rep():
>>> rows=db(db.Commitments.Account==session.id).select()
>>> commtot=0
>>> compen=0
>>> comfull=0
>>> for row in rows:
>>> commtot=commtot+int(row.Amount)
>>> if row.pending:
>>> compen=compen+int(row.Amount)
>>> else:
>>> comfull=comfull+int(row.Amount)
>>>
>>> rows=db(db.Transaction_Master.Account==session.id).select()
>>> netdue=0
>>> for row in rows:
>>> netdue=netdue+int(row.Net_Due)
>>>
>>> pay=0
>>> rows=db(db.Payments.Account==session.id).select()
>>> for row in rows:
>>> pay=pay+int(row.Amount)
>>> a=[]
>>> b=[]
>>> count=0
>>> a.append([TH('Due Amount'),TH('Commited Amount'),TH('Commitment
>>> Fulfilled'),TH('Commitment Pending'),TH('Uncommitted Amount'),TH('Payments
>>> Received')])
>>> a.append([netdue,commtot,comfull,compen,pay])
>>> COMMITMENTS=SQLFORM.grid(db.Commitments.Account==session.id
>>> ,user_signature=False)
>>> PAYMENTS=SQLFORM.grid(db.Payments.Account==session.id
>>> ,user_signature=False)
>>> return
>>> dict(COMMITMENTS=COMMITMENTS,PAYMENTS=PAYMENTS,SUMMARY=TABLE(a))
>>>
>>
>>
>>
>
>