4

我正在使用 web2py 为 MySQL 后端构建动态 web UI,而且我对 web2py 框架和 web 开发一般来说是新手。

我正在寻找的是具有以下功能的库或插件,这些功能是为 web2py 构建或兼容的。

1) 对从表中检索到的记录进行内联编辑(一次多条记录,而不是一次仅一条),所有更改在提交时都发送回数据库。

2) 这些记录的某些字段的值的下拉菜单;下拉列表的值将取决于该记录的另一个字段的值。

3) 创建新记录的能力。

--

以下是一些似乎接近我正在寻找的解决方案。但是所有现成的东西似乎都需要花费或要求我的项目是开源的。包含 [DOT] 以允许两个以上的链接。

http://datatables.net/index - 不购买插件就不能进行内联编辑

http://wijmo.com/widgets/wijmo-complete/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 是最好的方法。

关于前进的好道路有什么建议吗?

4

2 回答 2

0

看到以下插件列表后,http://dev.s-cubism.com/web2py_plugins 他们做了大部分你正在寻找的事情。

于 2012-12-14T09:56:39.107 回答
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

于 2015-07-25T12:47:33.017 回答