我正在使用web2py为MySQL后端构建动态Web UI,而且我是web2py框架和Web开发的新手。
我正在寻找的是具有以下功能的库或插件,这些功能是为web2py构建的或与之兼容。
1)从表中检索的记录的内联编辑(一次多个记录,而不是一次一个),所有更改在提交时都会发送回数据库。
2)这些记录的某些字段值的下拉菜单;下拉列表的值取决于该记录的另一个字段的值。
3)创建新记录的能力。
-
以下几个解决方案似乎接近我正在寻找的东西。但是现成的所有东西似乎都要花费或要求我的项目是开源的。包含[DOT]以允许两个以上的链接。
http://datatables.net/index - 没有购买插件就没有内联编辑
http://wijmo.com/widgets/wijmo-complete/grid/ - grid仅附带wijmo的许可版本
http://trirand.com/blog/jqgrid/jqgrid.html - 看起来很有希望,但如何使用web2py将数据发送回服务器?另外,我如何为某些字段创建下拉列表?
http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/cell-editing.html - 这似乎是我正在寻找的,但我不想为许可付费。
-
我的偏好是使用已经构建的东西。但是,很多人似乎认为编写自己的UI是最好的方法。
关于前进的好路径的任何建议?
答案 0 :(得分:0)
您看过以下插件列表http://dev.s-cubism.com/web2py_plugins 他们完成了你想要的大部分工作。
答案 1 :(得分:0)
有几种解决方案:https://groups.google.com/forum/#!topic/web2py/2AvvmszNrgA
步骤: 下载jeditable, 在static / js文件夹中安装。将代码添加到模板:
<script src="{{=URL('static','js/jquery.jeditable.js')}}"></script>
型号:
db.define_table('dogs',
Field('dog_name','string'))
控制器:
def populate():
db.dogs.truncate()
db.fleas.truncate()
db.dogs.insert(dog_name='dagwood')
db.dogs.insert(dog_name='daisy')
def dogs():
db.dogs.dog_name.represent = lambda value, row: DIV(value if value else '-',_class='dog_name', _id=str(row.id)+'.dog_name')
g = SQLFORM.grid(db.dogs, searchable=False, csv=False, user_signature=False)
return dict(form = g)
def upd_dog_name():
id,column = request.post_vars.id.split('.')
value = request.post_vars.value
db(db.dogs.id == id).update(**{column:value})
return value
查看:
{{extend 'layout.html'}}
<script>
jQuery(document).ready(function(){
jQuery('.dog_name').editable("{{=URL('dogs', 'upd_dog_name')}}",{
tooltip: "Click to edit, enter to save",
indicator : 'updating',
});})
</script>
<div id='dogs'>
{{=form}}
</div>
另一种方法(编程较少)是使用此web2py切片: http://www.web2pyslices.com/slice/show/1714/jqgrid-viewing-and-updating-data