2016-06-30 48 views
0

我想在web2py中構建一個視圖,該視圖具有多個來自同一控制器的smartgrid對象。它顯示它們絕對沒問題,但每當我嘗試在第二個表上創建新記錄時,它都不允許輸入,它似乎刷新了頁面。同樣試圖在第二張桌子上搜索實際上也填充了第一張桌子上的搜索字段,所以對於哪個smartgrid是哪一個顯然存在一些混淆。Web2Py在視圖中的多個Smartgrids

在我的研究中我遇到使用過程命名每個表格的多個形式的技術來了,見下圖:

form1.process(formname='form1') 

然而,這種方法似乎並不爲智能電網對象的工作(只要我能告訴)。我想我可以嘗試創建我自己的新SQLFORM.grid,但似乎很遺憾我無法更好地使用smartgrid,因爲它們擁有我需要的所有東西。

任何幫助表示讚賞。

+0

經過進一步的研究,看起來你不能在同一視圖中有多個網格,所以我用過的方法是將每個智能網格放入一個單獨的視圖中,然後利用iFrame將它們全部放入一個視圖。這並不理想,變得有點煩瑣,但最終會爲您提供所需的功能。 – dmerk

回答

0

正如您所指出的那樣,您不能以這種方式在同一頁面上擁有兩個網格,因爲網格使用URL來確定其當前狀態。不過,您可以考慮將每個網格放在一個Ajax組件中。在主視圖文件:

{{=LOAD('default', 'grid1.load', ajax=True)}} 
{{=LOAD('default', 'grid2.load', ajax=True)}} 

當然,你也可以通過指定URL ARG來區分它們爲來自同一個動作都網格。