`
stworthy
  • 浏览: 525613 次
  • 来自: ...
社区版块
存档分类
最新评论

jquery-easyui中表格的行编辑功能

阅读更多

datagrid现在具有行编辑能力了,使用时只须在columns中为需要编辑的列添加一个editor属性,编辑保存时同时具有数据校验能力。

看一个例子效果图:

代码如下:

$('#tt').datagrid({
    title:'Editable DataGrid',
    iconCls:'icon-edit',
    width:660,
    height:250,
    singleSelect:true,
    idField:'itemid',
    url:'datagrid_data.json',
    columns:[[
        {field:'itemid',title:'Item ID',width:60},
        {field:'productid',title:'Product',width:100,
            formatter:function(value){
                for(var i=0; i<products.length; i++){
                    if (products[i].productid == value) return products[i].name;
                }
                return value;
            },
            editor:{
                type:'combobox',
                options:{
                    valueField:'productid',
                    textField:'name',
                    data:products,
                    required:true
                }
            }
        },
        {field:'listprice',title:'List Price',width:80,align:'right',editor:{type:'numberbox',options:{precision:1}}},
        {field:'unitcost',title:'Unit Cost',width:80,align:'right',editor:'numberbox'},
        {field:'attr1',title:'Attribute',width:150,editor:'text'},
        {field:'status',title:'Status',width:50,align:'center',
            editor:{
                type:'checkbox',
                options:{
                    on: 'P',
                    off: ''
                }
            }
        },
        {field:'action',title:'Action',width:70,align:'center',
            formatter:function(value,row,index){
                if (row.editing){
                    var s = '<a href="#" onclick="saverow('+index+')">Save</a> ';
                    var c = '<a href="#" onclick="cancelrow('+index+')">Cancel</a>';
                    return s+c;
                } else {
                    var e = '<a href="#" onclick="editrow('+index+')">Edit</a> ';
                    var d = '<a href="#" onclick="deleterow('+index+')">Delete</a>';
                    return e+d;
                }
            }
        }
    ]],
    onBeforeEdit:function(index,row){
        row.editing = true;
        $('#tt').datagrid('refreshRow', index);
    },
    onAfterEdit:function(index,row){
        row.editing = false;
        $('#tt').datagrid('refreshRow', index);
    },
    onCancelEdit:function(index,row){
        row.editing = false;
        $('#tt').datagrid('refreshRow', index);
    }
});

 

原文及下载地址:http://jquery-easyui.wikidot.com/tutorial:datagrid12

 

分享到:
评论
21 楼 joyfun 2010-07-04  
	

<tr><td><span  class="formtext">类型</span></td>
	<td>
	<select id="ptype" class="easyui-combobox" name="sysParamModel.type" style="width:120px;" required="true">
		
	</select>

	</td></tr>

				<script type="text/javascript">
				$('#ptype').combobox({
  		  url:'/system/paramdata.do?paramEN=sitetype',
   		  listWidth:120,
   		  editable:false,
   		  valueField:'id',
    	  textField:'text'
			});
				</script>

然后firebug调试发现 页面初始化的时候请求了3次 url的ajax请求
20 楼 stworthy 2010-07-02  
还是不明白你的意思,能用代码说明一下吗?
19 楼 joyfun 2010-07-02  
哦 我这个代码是仿照demo里面的

还有就是combox的重复ajax请求 有办法解决吗?
18 楼 stworthy 2010-07-02  
<p>你在获取选中的记录时代码有误,应是:</p>
<pre name="code" class="js">var grid = $('#paramGrid');
var row = grid.datagrid('getSelected');
if (row){
...
} else {
$.messager.show({
title:'警告',
msg:'请先选择'
});
}  </pre>
 
17 楼 joyfun 2010-07-02  
比如 做单选判断的时候  要取得选中的行
当 执行grid = $('#paramGrid').datagrid(); 的时候就发现它自动执行了
datagrid的 数据载入 ajax request请求(看了datagrid的代码好像就是这样 firefox的监控也可以发现)
而其实这个时候 request请求时不必要的
	grid = $('#paramGrid').datagrid();	
			var row = grid.datagrid('getSelected');
	if (row){
……

	} else {
			$.messager.show({
			title:'警告', 
			msg:'请先选择。'
		});
	}	

16 楼 stworthy 2010-07-02  
不明白楼上说的什么意思,取grid对象是什么意思,做什么用的,最好能用代码说明一下。
15 楼 joyfun 2010-07-01  
请问有什么办法直接渠道 grid对象 而不产生ajax请求
用$(#mygrid).datagrid() 取grid对象的时候会产生一次ajax请求 相当于grid重新刷新了一次
有什么方法能避免吗? 能不能给grid加一个 autoload的属性
还有就是 combox也有类似情况 当页面有一个combox的时候 会产生3次相同的ajax请求
14 楼 extdev 2010-06-21  
可以参考这个
http://www.cnblogs.com/hxling/archive/2010/05/16/jquery-easyui-tab.html
13 楼 wsxcy 2010-06-20  
请问tabs中的标签如何才能响应鼠标移动事件,就是鼠标移动到tab的标签上不用点击就切换
12 楼 huangyuanmu 2010-06-14  
功能又增强了,不错。

继续关*注ing,希望能长期发展下去,打败jquery ui、jquery tools,哈哈
11 楼 fancool 2010-06-13  
请问一下在datagrid加入了遍及和增加的功能后
在验证方面可以是用以前的validatebox ,在validatebox中有个validate方法可以获取该组件的输入验证结果,但在datagrid中,如何得到呢。比如我增加一行,在输入后有验证不合法的文本,此时我点击保存,我想先得到此新增行的输入验证结果,该如何得到呢,谢谢。
10 楼 bh_nesta 2010-06-13  
请问页面的样式怎么改变呢?
我只是想使用表格,我想让表格的样式和我系统的样式一致。
9 楼 hrsvici412 2010-06-13  
stworthy 写道
在columns中不定义出来就不显示,但其数据一直可用。


原来这样
8 楼 stworthy 2010-06-13  
<div class="quote_title">angelhanyl 写道</div>
<div class="quote_div">请教  在删除时怎么得到该行的id呀</div>
<p> </p>
<p>调用deleteRow进行删除时是发生在客户端,这时后台并不发生任何数据操作。</p>
<p>要得到所有已删除的记录,可以调用下面代码:</p>
<p>var rows = $('#tt').datagrid('getChanges', 'deleted');</p>
<p>for(var i=0; i&lt;rows.length; i++){</p>
<p>    alert(rows[i].itemid); // 取得已删除的ID</p>
<p>}</p>
<p> </p>
<p>这样就可以在客户端进行修改后再一次性提交到后台。</p>
<p> </p>
7 楼 hui94781674 2010-06-13  
ext做这个好用。
6 楼 joehe 2010-06-12  
这是学ext的,还没学到家
5 楼 angelhanyl 2010-06-12  
请教  在删除时怎么得到该行的id呀
4 楼 fancool 2010-06-12  
再请教下在editor中的对象属性具体设置呢... 在api上没有呢...
options:{ 
                    valueField:'productid', 
                    textField:'name', 
                    data:products, 
                    required:true 
                } 

比如这样的otpions中的属性定义
非常感激
3 楼 fancool 2010-06-12  
stworthy 写道
在columns中不定义出来就不显示,但其数据一直可用。

对的 自己试出来了 也非常感谢你
2 楼 stworthy 2010-06-12  
在columns中不定义出来就不显示,但其数据一直可用。

相关推荐

    jquery-easyui-1.3.5

    `jQuery EasyUI` 是一个基于 jQuery 的前端框架,它提供了丰富的用户界面组件,使得开发者能够快速构建出功能完备、交互友好的Web应用。这个`jquery-easyui-1.3.5`版本是该框架的一个特定发行版,下面将详细介绍这个...

    jquery-easyui-1.3.2 demo

    在 "jquery-easyui-1.3.2" 版本中,官方提供了一系列的演示,涵盖了各个组件的基本用法和复杂功能,让开发者可以快速上手。 1. **DataGrid**:数据网格是EasyUI的重要组件,用于展示和操作表格数据。在demo中,你...

    jquery-easyui-1.2.6

    jQuery EasyUI是前端开发中的一款强大工具,它基于流行的JavaScript库jQuery,旨在为Web开发者提供一套便捷的UI组件,以快速构建功能丰富且设计精美的用户界面。这个框架的核心理念是简化工作流程,减少代码量,使...

    jquery-easyui-1.2 版本

    jQuery EasyUI 基于 jQuery,它扩展了 jQuery 的功能,提供了如对话框、表格、树、菜单等丰富的用户界面组件。这些组件都是基于 HTML5 和 CSS3 设计,支持响应式布局,可在各种设备上良好运行。 2. **datagrid组件...

    jquery-easyui-1.4.5_easyuiapi_

    在本文中,我们将深入探讨jQuery EasyUI 1.4.5版本的API,了解其核心功能、组件以及如何有效利用这些工具进行开发。 1. **EasyUI概述** EasyUI 是一套轻量级的前端框架,它基于jQuery,提供了诸如对话框、表格、...

    jquery-easyui-1.3.2+帮助文档

    - "jquery-easyui-1.3.2"压缩包中的帮助文档详细介绍了每个组件的用法、配置选项、API方法以及示例代码。 - 文档还涵盖了常见问题解答、错误处理和最佳实践,为开发者提供全方位的支持。 6. **整合与开发** - ...

    jquery-easyui-1.2.5

    jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了丰富的组件和便捷的API,帮助开发者快速构建出功能完备、用户界面友好的Web应用程序。这个名为“jquery-easyui-1.2.5”的压缩包,包含了该版本的所有必要文件...

    jquery-easyui-1.5.2

    5. 表格(Table):EasyUI的表格组件支持数据的分页、排序、过滤和编辑,可以与后端数据库无缝对接,展示大量数据时尤为实用。 6. 表单(Form):表单组件提供了多种输入控件,如文本框、下拉选择、复选框等,以及...

    jquery-easyui-1.4.2.zip

    在实际开发中,利用jQuery EasyUI 1.4.2,开发者可以快速构建出具有专业水准的后台管理系统,而无需过多关注底层的实现细节,从而将更多精力集中在业务逻辑和功能设计上。通过熟练掌握这个框架,开发者可以显著提升...

    jquery-easyui-1.3.3

    jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列易于使用的组件,帮助开发者快速构建功能丰富的Web应用。这个"jquery-easyui-1.3.3"版本是该框架的一个稳定版本,它包含了丰富的功能和优化,使得网页...

    jquery-easyui-1.3.1.zip

    - **组件丰富**:jQuery EasyUI 提供了诸如对话框(Dialog)、表格(Grid)、树形控件(Tree)、下拉选择框(ComboBox)、菜单(Menu)等多种常见的 UI 控件,满足开发各种复杂界面的需求。 - **响应式设计**:...

    jquery-easyui资料和文档

    在jQuery EasyUI中,你可以找到诸如窗口(Window)、面板(Panel)、表格(Grid)、下拉菜单(Menu)、表单(Form)、按钮(Button)、树形结构(Tree)、滑块(Slider)等多种UI元素。这些组件都具有高度可定制性和...

    jquery-easyui-1.3.1

    jQuery EasyUI 是一个基于 jQuery 的轻量级框架,它为开发者提供了一系列的 UI 组件,用于快速构建功能丰富的、美观的 Web 应用程序。在版本 1.3.1 中,EasyUI 已经展现出了其强大的稳定性和兼容性,特别是对 ...

    jquery-easyui

    在本篇文章中,我们将深入探讨 jQuery EasyUI 的核心概念、主要功能以及使用方法。 ### 1. 核心概念 - **jQuery**: jQuery 是一个轻量级的 JavaScript 库,简化了 DOM 操作、事件处理和动画制作。EasyUI 基于 ...

    jquery-easyui-1.4.2源码无压缩

    - EasyUI的组件之间可以进行数据传递和事件触发,例如,表格(datagrid)可以通过事件与对话框(dialog)进行交互,实现数据编辑和保存功能。 7. **自定义组件** - 通过对源码的理解,开发者可以创建自己的组件,...

    jquery-easyui 插件及例子

    开发者可以通过配置列定义、行样式、操作按钮等,创建功能丰富的数据查看和编辑界面。 在"jquery-easyui-1.2.1"这个压缩包中,可能包含了jQuery EasyUI的库文件、示例代码、CSS样式和图片资源。通过阅读和分析这些...

    jquery-easyui1.5 源码

    jQuery EasyUI 是一个基于 jQuery 的轻量级前端框架,它提供了丰富的组件和强大的功能,帮助开发者快速构建用户界面。在1.5版本中,EasyUI 继续优化了其核心组件,包括form表单、grid数据网格以及tree和tree grid树...

    jquery-easyui-1.3.6

    在 "jquery-easyui-1.3.6" 中,我们可以找到诸如对话框(dialog)、表格(datagrid)、下拉框(combobox)、树形结构(tree)等多种常见Web组件。这些组件的实现都是基于 jQuery 对DOM操作的灵活性,通过事件绑定、...

    jquery-easyui-1.2.5源码

    同时,源码中还包含了各种插件,如行选择、编辑功能等,这些都是通过扩展jQuery对象实现的。 此外,EasyUI的事件模型也值得研究。它通过jQuery的事件绑定机制,为每个组件定义了丰富的事件,如`onLoadSuccess`、`...

Global site tag (gtag.js) - Google Analytics