FlexiGrid使用教程
一.表的结构
1 表结构
var FriendLink = {
tableName: 'FriendLink', --表名
title: '友情链接', --显示在Grid最上面的中文
dialogtitle: '', --弹出对话框的标题
columns: [{ --表数据结构
display: '友链类型', --字段中文名称
name: 'TypeID', --数据库中的字段名称
width: 100, --在Grid上的宽度
sortable: true, --是否可以排序
align: 'left', --文字的对齐方式
process: formatForeignKeyValue, --将单元格值格式化的方法
processEditor: formatForeignKey, --将控件中值格式化的方法 (暂不用)
isdefault: null, --是否默认(暂不用)
reg: '^\d+$', --正则表达式 (验证时使用)
operator: 'Eq', --过滤查询的方式 (Like | Eq)
isPrimaryKey: false, --是否是主键
isForeignkey: true, --是否是外键
foreignkeyColumnType: 'name', --外键的类型
foreignKeyTableName: 'FriendLinkType', --外键表的名字
foreignKeytableSchma: --外键表的结构
[{display: '序号', name: 'ID', isForeignkey: false, index: 0, dataType: 'Int32'},
{display: '类型名称', name: 'Name', isForeignkey: false, index: 1, dataType: 'AnsiString'}]
}]
};
2. 共用函数
function formatMoney(value, pid) { return "¥" + parseFloat(value).toFixed(2); } –格式化货币用
function formatForeignKey(value, pid) { return value.split('_')[0]; } --格式化有外键关系的字段的值
function formatForeignKeyValue(value, pid) { return (value.split('_')[1] != '') ? value.split('_')[1] : value.split('_')[0]; } --格式化有外键关系的文本
3. flexigrid
$("#dataList").flexigrid({
height: document.documentElement.clientHeight - 155, --高度
width: $("#ptable").width() - 3, --宽度
url: "WebService/" + FriendLink.tableName + "_Get.ashx",--获取数据的服务
colModel: FriendLink.columns, --要显示的列的数据
searchitems: $.grep(FriendLink.columns, function(col, i) { return col.isSearchItem; }),
--可筛选的字段
buttons: [{ --新增按钮
name: 'Add', displayname: "新增", bclass: 'Add', onpress: toolbarItem_onclick
},{ --删除按钮
name: 'Delete', displayname: "删除", bclass: 'Delete', onpress: toolbarItem_onclick
}],
sortname: "ID", --默认排序字段
sortorder: "desc", --默认排序字段的排序顺序
title: FriendLink.title, --显示在表格上方的标题
usepager: true, --是否支持分页
useRp: false, --是否可手动设置分页每页的数据量
qtype: "TypeID", --默认查询条件字段
qop: "Eq", --默认查询字段取值方式
query: FriendLink.columns[2].defaultValue, --默认查询字段的值
rowbinddata: true, --是否将值绑定到行上
showcheckbox: true, --是否显示checkbox
rowhandler: function(row) { --行的右键事件
$(row).contextmenu({ --右键显示菜单
width: 150, --右键菜单的宽度
items: [{
text: "编辑", --按钮的名称
icon: "../css/images/icons/edit.png", --按钮的图标
alias: "contextmenu-edit", --按钮的命令
action: contextMenuItem_click --按钮执行的方法
},{
text: "删除",
icon: "../css/images/icons/rowdelete.png",
alias: "contextmenu-delete",
action: contextMenuItem_click
},{
text: "刷新",
icon: "../css/images/icons/table_refresh.png",
alias: "contextmenu-reflash",
action: contextMenuItem_click
}]
});
}
});
$(window).resize(function() {
var w = $("#ptable").width() - 3;
var gh = document.documentElement.clientHeight - 155;
$("#dataList").flexResize(w, gh);
}); --flexigrid的自动缩放
$.each(FriendLink.columns, function(i, col) { $("#dataList").flexToggleCol(col.index, col.isShowItem);});
--flexigrid不显示的列的隐藏
4. dialog
$('#dialog_div').dialog({
hide: '',
zIndex: 100,
autoOpen: false,
modal: true,
overlay: { opacity: 0.5, background: "black" },
buttons: {
'取消': function() { $(this).dialog("close"); },
'重置': function() { $(this).children('form')[0].reset(); },
'提交': function() { InsertUpdateData(); }
}
});
function showEditorDialog(rowData) {
if (rowData != null) {
var _value0 = (rowData == null) ? null : rowData[0];
$('#ff0').attr('checked', _value0 ? 'checked' : '');
var _value1 = (rowData == null) ? null : rowData[1];
$('#ff1').attr('checked', _value1 ? 'checked' : '');
$('#_ff2').val(FriendLink.columns[2].defaultValue);
var _value3 = (rowData == null) ? null : rowData[3];
$('#ff3').attr('checked', _value3 ? 'checked' : '');
var _value4 = (rowData == null) ? null : rowData[4];
$('#ff4').attr('checked', _value4 ? 'checked' : '');
var _value5 = (rowData == null) ? null : rowData[5];
$('#ff5').attr('checked', _value5 ? 'checked' : '');
}else{
$('#_ff2').val(FriendLink.columns[2].defaultValue);
}
$('#dialog_div .ui-dialog-title').text((rowData != null ? '修改' : '添加') + FriendLink.dialogtitle);
$('#dialog_div').dialog('option', 'height', document.documentElement.clientHeight);
$('#dialog_div').dialog('option', 'width', document.documentElement.clientWidth);
$('#dialog_div').dialog('open');
}
5. 按钮点击后执行的方法
function toolbarItem_onclick(cmd, grid) {
if (cmd == "Add") {
showEditorDialog();
}else if (cmd == "Delete") {
var ids = $("#dataList").getCheckedRows();
if (ids != '') {
jConfirm('你确认要删除吗?', '提示', function() {
DeleteData(ids);
});
} else {
jAlert('请选择您要删除的数据!', '提示');
}
}
}
function contextMenuItem_click(target) {
var id = $(target).attr("id").substr(3);
var cmd = this.data.alias;
var ch = $.browser.msie ? target.ch : target.getAttribute("ch");
var rowdata = ch.split("_FG$SP_");
if (cmd == "contextmenu-edit") {
showEditorDialog(rowdata);
}else if (cmd == "contextmenu-delete") {
jConfirm('你确认要删除吗?', '提示', function() {
DeleteData(id);
});
}else{
$("#dataList").flexReload();
}
}
6.提交到数据库的方法
function InsertUpdateData() {
$('#dialog_form').ajaxSubmit({
url: "WebService/" + FriendLink.tableName + "_Add_Edit.ashx",
type: 'POST',
dataType: "json",
resetForm: true,
beforeSubmit: function(formData, jqForm) {
for (var i = 0; i < formData.length; i++) {
}
return true;
},
success: function(responseText, statusText) {
if (responseText.result == "OK") {
$('#dialog_div').dialog('close');
$('#dataList').flexReload();
} else {
jAlert(responseText, '消息提示');
}
},
error: function(data) {
jAlert(data.msg, '消息提示');
}
});
};
function DeleteData(ids) {
$.ajax({
type: "POST",
url: "WebService/" + FriendLink.tableName + "_Del.ashx",
data: { "ids": ids },
dataType: "json",
success: function(responseText, statusText) {
if (responseText.result == "OK") {
$('#dataList').flexReload();
$('#dialog_div').dialog('close');
jAlert("成功删除!", '消息提示');
} else {
jAlert(responseText.msg, '消息提示');
}
},
error: function(data) { jAlert(data.msg, '消息提示'); }
});
};
7.初始化控件
$("#ff2").autocomplete('WebService/AutoComplete_All.ashx?tablename=FriendLinkType', {
formatItem: function(row, i, n) { return row[1]; },
formatResult: function(row, i, n) { return row[1]; },
mustMatch: true,
minChars: 0
}).result(function(event, data, formatted) {
$("#_ff2").val(formatted);
});
$('#ff4').upImage({});
转载于:https://www.cnblogs.com/feebool/archive/2010/01/26/1656558.html
FlexiGrid使用教程相关推荐
- 使用Docker搭建svn服务器教程
使用Docker搭建svn服务器教程 svn简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很 ...
- mysql修改校对集_MySQL 教程之校对集问题
本篇文章主要给大家介绍mysql中的校对集问题,希望对需要的朋友有所帮助! 推荐参考教程:<mysql教程> 校对集问题 校对集,其实就是数据的比较方式. 校对集,共有三种,分别为:_bi ...
- mysql备份psb文件怎么打开_Navicat for MySQL 数据备份教程
原标题:Navicat for MySQL 数据备份教程 一个安全和可靠的服务器与定期运行备份有密切的关系,因为错误有可能随时发生,由攻击.硬件故障.人为错误.电力中断等都会照成数据丢失.备份功能为防 ...
- php rabbmq教程_RabbitMQ+PHP 教程一(Hello World)
介绍 RabbitMQ是一个消息代理器:它接受和转发消息.你可以把它当作一个邮局:当你把邮件放在信箱里时,你可以肯定邮差先生最终会把邮件送到你的收件人那里.在这个比喻中,RabbitMQ就是这里的邮箱 ...
- 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)
置顶 本人决定将过去一段时间在公司以及日常生活中关于自然语言处理的相关技术积累,将在gitbook做一个简单分享,内容应该会很丰富,希望对你有所帮助,欢迎大家支持. 内容介绍如下 你是否曾经在租房时因 ...
- Google Colab 免费GPU服务器使用教程 挂载云端硬盘
一.前言 二.Google Colab特征 三.开始使用 3.1在谷歌云盘上创建文件夹 3.2创建Colaboratory 3.3创建完成 四.设置GPU运行 五.运行.py文件 5.1安装必要库 5 ...
- 理解和实现分布式TensorFlow集群完整教程
手把手教你搭建分布式集群,进入生产环境的TensorFlow 分布式TensorFlow简介 前一篇<分布式TensorFlow集群local server使用详解>我们介绍了分布式Ten ...
- 高级教程: 作出动态决策和 Bi-LSTM CRF 重点
https://www.zhihu.com/question/35866596 条件随机场 CRF(条件随机场)与Viterbi(维特比)算法原理详解 https://blog.csdn.net/qq ...
- PyTorch 高级实战教程:基于 BI-LSTM CRF 实现命名实体识别和中文分词
20210607 https://blog.csdn.net/u011828281/article/details/81171066 前言:译者实测 PyTorch 代码非常简洁易懂,只需要将中文分词 ...
- k8s核心组件详细介绍教程(配超详细实例演示)
本文实验环境基于上篇文章手把手从零开始搭建k8s集群超详细教程 本文根据B站课程云原生Java架构师的第一课K8s+Docker+KubeSphere+DevOps学习总结而来 k8s核心组件介绍 1 ...
最新文章
- java 服务器线程池测试
- php中 param,php中bind_param()函数用法分析
- 解决使用CoreData时报duplicate symbol错误问题
- 扎金花游戏 PHP 实现代码之大小比赛
- SQL2005 游标学习
- Codeforces Round #155 (Div. 2) C YY题目
- 【心电信号】基于matlab Simulink胎儿心电信号提取【含Matlab源码 1550期】
- 细胞自动机,那是什么?
- python 更新pip镜像源
- 智伴机器人自动关机后怎么开机_智伴机器人
- 联想启天m428进入bios安装ubuntu
- ROS从入门到精通3-5:blender机器人模型定制皮肤贴图
- python fun函数、求4x4整型数组的主对角线元素的和_求一个4×4的整型二维数组主对角线元素之和...
- 关于区块链在存证方面的应用
- 计算机 睡眠 无法打印,台式机睡眠后打不开怎么办
- 《STL源码剖析》-- stl_list.h
- 英语语法汇总(9.时态)
- 数据库密码过期和取消期限限制
- 浏览器打印,Chrome网页打印中的宽度控制
- 嵌入式通过串口连接如何屏蔽自动登录
热门文章
- linux系统常见的压缩命令,Linux 系统常见的压缩指令
- 计算机英语句子及翻译,英文的唯美句子带翻译 最火英文句子带翻译
- linux 命令缺失安装,Redhat7没有安装ifconfig命令的解决方法
- bootstart讲义,不过忘了是哪个老师的了
- javascript offsetLeft,Left,clientLeft 各种浏览器位置相关属性
- 还不知道如何使用 IDEA ?教你三招快速掌握 IDEA
- GO 语言博客 搬家部署,NGINX作为代理
- cd4017引脚图及功能_芯片CD4017解析
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_8_常用的函数式接口_Supplier接口...
- Orthanc+OHIF DICOM Viewer最佳Dicom解析、在线浏览实践指南(解决方案)