web2py内联可编辑网格

2024-06-06 10:30:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用web2py构建一个MySQL后端的动态webui,而且我对web2py框架和web开发还不熟悉。在

我要找的是一个库或插件,它具有以下特性,要么是为web2py构建的,要么是与web2py兼容的。在

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

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

3)创建新记录的能力。在

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

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是最好的方法。在

有什么好的建议吗?在


Tags: com插件框架http编辑html记录mysql
2条回答

看到下面的插件列表后,http://dev.s-cubism.com/web2py_plugins 他们做了你想要的大部分。在

有两种解决方案:https://groups.google.com/forum/#!topic/web2py/2AvvmszNrgA

步骤: 下载jeditable, 安装在static/js文件夹中。将代码添加到模板:

<script src="{{=URL('static','js/jquery.jeditable.js')}}"></script>

型号:

^{pr2}$

控制器:

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

相关问题 更多 >