浏览 5235 次
锁定老帖子 主题:in_place_editing使用小记
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-12
最后修改:2008-12-12
in_place_editing是一个用于原地编辑的ajax小控件。 典型的效果:
插件原始地址:http://svn.rubyonrails.org/rails/plugins/in_place_editing/ 插件相关改进的讨论:http://railsforum.com/viewtopic.php?id=22457 这是我根据相关的讨论修改后的版本:http://qianjigui.iteye.com/upload/attachment/59164/1ddb2805-c9ce-3a9a-9d03-f950017857f4.zip
下面是具体的步骤:
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-18
Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
“If you’re receiving this error while using the in_place_editor_field method, chances are you’re iterating through a list of objects and you’re passing the variables to the method incorrectly. To fix this problem, set the current iteration as an instance variable and you should be fine. For example: <% for person in @people %> <% @person = person %> <%= in_place_editor_field :person, :name %> |
|
返回顶楼 | |
发表时间:2008-12-18
用linux开发,赞...
那个画框的线好难看 |
|
返回顶楼 | |
发表时间:2008-12-18
最后修改:2008-12-18
太复杂,让我们看看在wicket 中实现一个in place editing 是多么简单:
第一步: 导入 "in place edit" 组件 import org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel; 在wicket extension 项目中提供了一个 AjaxEditableLabel 组件 第二步: 在html 中需要in place edit 的地方放置一个标签 <span wicket:id="inlineEditor" ></span> 第三步步: 创建组件并绑定model String content ="点击开始编辑"; AjaxEditableLabel label = new AjaxEditableLabel("inlineEditor", new PropertyModel(this, "content")){ @Override protected void onCancel(AjaxRequestTarget target) { super.onCancel(target); } @Override protected void onEdit(AjaxRequestTarget target) { super.onEdit(target); } @Override protected void onSubmit(AjaxRequestTarget target) { super.onSubmit(target); } @Override protected String getLabelAjaxEvent() { return "ondblclick"; } }; add(label); that's all. 任何时候你访问content ,都是最后一次"ipe" 过的数据.如果想更改激活 "in place edit" 的事件,在 getLabelAjaxEvent 中返回相应的事件名称即可.并且在编辑启动,编辑取消,数据提交时都能得到事件处理的通知. wicket 中的组件可以复合, 在任何使用Label 的地方都可以换成 AjaxEditableLabel, form, ListView, Tree 等等. |
|
返回顶楼 | |
发表时间:2008-12-19
本来就很简单,让楼主写复杂了(他把整个页面中的东西都贴出来了)
1、调入AJAX <%= javascript_include_tag :defaults %> 2、动态生成Action Account.content_columns.each do |c| in_place_edit_for :account, c.name end 3、在view中使用 <%= in_place_editor_field :post, 'title' %> |
|
返回顶楼 | |