2
我期待有一個非常簡單的網格,我想用扭曲的web服務器返回所有的json jqGrid。我有很多jqGrid代碼的例子,但是想看看python/twisted中是否有後端的例子?沒有人有任何使用jqGrid與扭曲/ Python的任何示例
我期待有一個非常簡單的網格,我想用扭曲的web服務器返回所有的json jqGrid。我有很多jqGrid代碼的例子,但是想看看python/twisted中是否有後端的例子?沒有人有任何使用jqGrid與扭曲/ Python的任何示例
首先在某處定義您的網格(例如,grids.py)。只需要模型或查詢集和url。
class ExampleGrid(JqGrid):
model = SomeFancyModel # could also be a queryset
fields = ['id', 'name', 'desc'] # optional
url = reverse('grid_handler')
caption = 'My First Grid' # optional
colmodel_overrides = {
'id': { 'editable': False, 'width':10 },
}
創建視圖來處理請求
def grid_handler(request):
# handles pagination, sorting and searching
grid = ExampleGrid()
return HttpResponse(grid.get_json(request), mimetype="application/json")
def grid_config(request):
# build a config suitable to pass to jqgrid constructor
grid = ExampleGrid()
return HttpResponse(grid.get_config(), mimetype="application/json")
定義網址,這些觀點
from myapp.views import grid_handler, grid_config
...
url(r'^examplegrid/$', grid_handler, name='grid_handler'),
url(r'^examplegrid/cfg/$', grid_config, name='grid_config'),
了直接從here它使用Django這個例子。您將需要構建基於數據返回json的函數。
也許是這樣的:
def get_rows():
db.things.category.represent = lambda v: v.name
fields = ['id','name','category','price','owner']
rows = []
page = int(request.vars.page)
pagesize = int(request.vars.rows)
limitby = (page * pagesize - pagesize,page * pagesize)
orderby = db.things[request.vars.sidx]
if request.vars.sord == 'desc': orderby = ~orderby
for r in db(db.things.id>0).select(limitby=limitby,orderby=orderby):
vals = []
for f in fields:
rep = db.things[f].represent
if rep:
vals.append(rep(r[f]))
else:
vals.append(r[f])
rows.append(dict(id=r.id,cell=vals))
total = db(db.things.id>0).count()
pages = int(total/pagesize)
#if total % pagesize == 0: pages -= 1
data = dict(total=pages,page=page,rows=rows)
return data
這是從here
我沒有工作的例子給個大氣壓,但我可以告訴你,你的echoeing數據'json_encode'將是該解鎖您的解決方案的第一個關鍵,因爲這將自動將您的數據數組轉換爲jqGrid甚至Flexigrid用於解釋數據對象的預期形式。 – SpYk3HH 2012-02-08 17:17:57