<%@ page contentType="text/html; charset=UTF-8" %>
<%
String path = request.getContextPath();
%>
<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE> ZTREE DEMO - Simple Data</TITLE>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<SCRIPT type="text/javascript">
var contextpath = "<%=path%>";
</SCRIPT>
<style type="text/css">
.myul li{float:left;width:100px;display:inline;}
</style>
<link href="<%=path %>/frameworks/ligerUI/skins/Aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" />
<script src="<%=path %>/frameworks/jquery/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="<%=path %>/frameworks/ligerUI/js/core/base.js" type="text/javascript"></script>
<script src="<%=path %>/frameworks/ligerUI/js/plugins/ligerDialog.js" type="text/javascript"></script>
<script src="<%=path %>/frameworks/ligerUI/js/plugins/ligerTextBox.js" type="text/javascript"></script>
<script src="<%=path %>/frameworks/ligerUI/js/plugins/ligerCheckBox.js" type="text/javascript"></script>
<script src="<%=path %>/frameworks/ligerUI/js/plugins/ligerComboBox.js" type="text/javascript"></script>
<script src="<%=path %>/frameworks/ligerUI/js/plugins/ligerGrid.js" type="text/javascript"></script>
<script src="<%=path %>/frameworks/ligerUI/js/plugins/ligerDateEditor.js" type="text/javascript"></script>
<script src="<%=path %>/frameworks/ligerUI/js/plugins/ligerSpinner.js" type="text/javascript"></script>
<script src="<%=path %>/frameworks/ligerUI/js/plugins/ligerResizable.js" type="text/javascript"></script>
<script src="<%=path %>/js/json2.js" type="text/javascript"></script>
<script src="<%=path %>/js/uuid.js" type="text/javascript"></script>
<SCRIPT type="text/javascript">
var manager, g;
$(document).ready(function(){
$("#leafOpt").click(function(){
$("#urlDom").show();
});
$("#dirOpt").click(function(){
$("#urlDom").hide();
});
//初始化grid
function itemclick(item)
{
alert(item.text);
}
var typeData = [{ val: 'url', text: 'URL' }, { val: 'btn', text: '按钮'}, { val: 'code', text: '分级编码'}];
var rowData = { Rows: []};
g = manager = $("#maingrid").ligerGrid({
columns: [
{ display: '名称', name: 'name', align: 'left', width: 120,editor: { type: 'text' } } ,
{ display: '类型', width: 60, name: 'type',
editor: { type: 'select', data: typeData, valueColumnName: 'val' },
render: function (item)
{
for (var i = 0; i < typeData.length; i++)
{
if (typeData[i]['val'] == item.type)
return typeData[i]['text']
}
}
},
{ display: '值', name: 'value', width: 360, align: 'left',editor: { type: 'text' } }
], sortName: 'name',enabledEdit: true, data: rowData,
onSelectRow: function (rowdata, rowindex)
{
$("#txtrowindex").val(rowindex);
},
onBeforeEdit: onBeforeEdit, onBeforeSubmitEdit: onBeforeSubmitEdit,onAfterEdit: onAfterEdit,
width: '98%', height: '350', usePager: false, clickToEdit: true, checkbox: true
});
});
function deleteRow()
{
g.deleteSelectedRow();
}
function addNewRow()
{
g.addRow({
id : 0,
name:'',
type:'url',
value:''
});
}
//设置name前缀
function onBeforeEdit(e)
{
var data = manager.getData(); return true;
}
//限制年龄
function onBeforeSubmitEdit(e)
{
if (e.columnname == "Age")
{
if (e.value < 20 || e.value > 30) return false;
}
return true;
}
//编辑后事件
function onAfterEdit(e)
{
//当切换类型时,自动填充名称前缀
//alert(JSON.stringify(e.record));
//alert("after, e.column: "+JSON.stringify(e.column));
if(e.column.name=="type") {
var data = manager.getData();
var d = data[e.rowindex];
var name = '';
if(d.type=="url")
name="url";
else if(d.type=="code")
name="code_";
else if(d.type=="btn")
name="btn_";
g.updateCell('name', name, e.record);
}
//当名称修改后,校验前缀是否与类型匹配
if (e.column.name == "name")
{
var d = e.record;
var cellObj = g.getCellObj(d, e.column);
//var name = d[e.column.name];
var name = $(cellObj).text();
if(name.length<1)
return true;
if(d.type=="url" && name.indexOf(d.type)!=0) {
alert('你刚才编辑的值录入不正确!(类型为URL时,名称必须以url开头(小写))');
//cellObj.focus();
//g.setCellEditing(d, e.column, editing);
return false;
} else if(d.type=="code" && name.indexOf(d.type)!=0) {
alert('你刚才编辑的值录入不正确!(类型为分级编码时,名称必须以code_开头(小写))');
//g.setCellEditing(d, e.column, editing);
return false;
} else if(d.type=="url" && name.indexOf(d.type)!=0) {
alert('你刚才编辑的值录入不正确!(类型为按钮时,名称必须以btn_开头(小写))');
//g.setCellEditing(d, e.column, editing);
return false;
}
}
return true;
}
</script>
</head>
<body>
<table>
<tr>
<td colspan=2>
<input type=radio id="dirOpt" name="typeOpt" checked><label for="dirOpt">目录节点</label>
<input type=radio id="leafOpt" name="typeOpt"><label for="leafOpt">叶子节点</label>
</td>
</tr>
<tr>
<td><label>节点名称</label></td>
<td><input type="text" id="nodeNameTxt" size="40"></td>
</tr>
<tr id="urlDom" style="display:none">
<td><label>叶子url</label></td>
<td><input type="text" id="urlTxt" size="70"></td>
</tr>
<tr>
<td><label>分级编码</label></td>
<td><input type="text" border="0" style="border:0;" readonly id="nodeCodeTxt" size="40"></td>
</tr>
</table>
<div>
<a class="l-button" style="width:60px;float:left; margin-left:10px;" onclick="addNewRow()">新增行</a>
<a class="l-button" style="width:60px;float:left; margin-left:10px;" onclick="deleteRow()">删除行</a>
</div>
<div id="maingrid"></div>
</body>
</html>

ligerui grid行编辑示例的更多相关文章

  1. Grid行编辑插件

    //操作列不显示应该就是autoLoad的问题.         Ext.onReady(function () {             Ext.BLANK_IMAGE_URL = "E ...

  2. 关于ligerui grid 行内编辑 combobox 只能选择的问题

    这个貌似是天然的不支持,修复方案,在ligerGridOrd.js中添加一行代码,如下,跟了一下午的源码,发现在这里的时候,options中只保留了combobox中的一部分属性,所以可能combob ...

  3. EXTJS 4.2 资料 控件之Grid 行编辑绑定下拉框,并点一次触发一次事件

    主要代码: { header: '属性值', dataIndex: 'PropertyValueName', width: 130, editor: new Ext.form.field.ComboB ...

  4. Ligerui Grid组件--学生信息列表

    一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭建 4.Ligerui Grid组件--学生信 ...

  5. 扩展Jquery方法创建LigerUI Grid

    ///** //*封装jquery get请求ajax //*author:叶明龙 //*time:2012-12-10 //*/ function getAjax(url, para, fn) { ...

  6. jqGrid行编辑配置,方法,事件

    行编辑可以在行修改后更新数据,如下图所示 用户用鼠标点击选择一行,jqGrid将可编辑的字段转换为数据输入单元,如上面图所示.不可编辑的列,如id,不会转为可输入单元,而是保持不变.可以通过配置col ...

  7. jqgrid 使用自带的行编辑

    上篇jqgrid 单击行启用行编辑,切换行保存原编辑行 本篇,说说使用jqgrid自带的行编辑 1)设置需要编辑的列  editable: true colModel: [ { label: '字段编 ...

  8. grid 布局 属性示例

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  9. EXTJS4.0 grid 可编辑模式 配置

    首先配置这个参数 plugins:[//插件 Ext.create("Ext.grid.plugin.CellEditing",{ clicksToEdit:1//单元格 点一下就 ...

随机推荐

  1. Joel Spolsky对计算机学生的七大建议

    /*先来介绍下作者:Joel Spolsky,世界最具影响的程序员网志Joel on Software的主人,软件业一位旗帜鲜明的思想者,一位传统软件管理理念的挑战者.他创办的这个网站被程序员誉为“反 ...

  2. c++中的signal机制

    简介 signal是为了解决类之间通信的问题而出现的,更深入的原因是面向对象讲究封装,但是封装必然导致类之间沟通困难,但是使用接口的方式又太重量级--需要写很多代码,而且会导致接口爆炸 比如你需要把一 ...

  3. Android ImageView scaleType属性

    scaleType属性 文章来源:http://blog.csdn.net/xilibi2003/article/details/6628668 使用ImageView时经常会用到scaleType属 ...

  4. text输入框中按下enter键时阻止刷新页面

    1.在js中加入一个方法: function judge_enter(){ if(window.event.keyCode==13){ return false;//阻止页面刷新的作用 } } 2.然 ...

  5. angularjs directive学习心得

    一些常见的错误 在angularjs里,创建directive时,directive的名称应该要使用驼峰式,例如myDirective,而在html里要调用它的时候,就不能用驼峰式了,可以用my-di ...

  6. jQuery进行DOM操作记录

    1.在元素内部插入DOM元素 ①插入到元素内部原有元素之后 append(content)      返回值:jQuery  参数-content:要插入的元素String,Element,jQuer ...

  7. 抛砖引玉:关于Android的ListView中CheckBox错乱

    首先:参考了这篇翻译的文章:http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html 文章中关于说的Android中的Recyc ...

  8. ios实例开发精品源码文章推荐

    iOS源码:游戏引擎-推箱子游戏 http://www.apkbus.com/android-106392-1-11.html iOS源码:进度条-Colorful ProgressView http ...

  9. C 语言指针怎么理解?

    对于程序员来说内存可以简化成这样一种东西:&lt;img src="https://pic1.zhimg.com/4d060c3f67c22cd4b07273db00f64708_b ...

  10. OC和JS之间的交互

    OC和JS之间的交互 目录 对OC和JS之间交互的理解 JS调用OC OC调用JS 对OC和JS之间交互的理解 JS调用OC JS文件 function sendCommand(cmd,param){ ...