接上篇博文,详细说一下js代码以及JQuery DataTables Editor---页面内容修改&&数据库信息修改遇到的问题和解决办法。

1.关于dialog

初始化:

  $("#e_Attributes").dialog({
modal: true,
autoOpen: false,
show: {
effect: "blind",
duration:
},
hide: {
effect: "explode",
duration:
},
width:
});

dialog 在初始化的时候,要设置 modal为true,这是一个遮蔽层,当dialog弹框出现,只能操作dialog里面的内容。这样的好处在于一次只让dialog 出现一次,便于对具体datatables的操作。

关闭:

 function dialogClose() {
$("#e_Attributes").dialog("close");
}

当dialog中的ajax异步更新成功的时候,调用上面的代码关闭dialog。

2.关于datatables

初始化:

  var editor;
//声明datatable
$("#gridtable").dataTable().fnDestroy();
editor = $('#gridtable').dataTable({
"bInfo":false,
"bServerSide": false,
'bPaginate': false, //是否分页。
"bProcessing": false, //当datatable获取数据时候是否显示正在处理提示信息。
'bFilter': false, //是否使用内置的过滤功能。
'bLengthChange': false, //是否允许用户自定义每页显示条数。
'sPaginationType': 'full_numbers', //分页样式
});

首先声明了editor,在datatables初始化的时候为editor赋值,这样便于我们对已经初始化的datatables操作。
     $("#gridtable").dataTable().fnDestroy();这一段代码,是将先前声明的datatable destroy。没有此段代码,当页面刷新的时候,就会出现dataTable已经声明过了,无需再声明的错误的警告,这个将错误不是每次都出现,至于具体的原因现在还没有找到,但是加上这段代码,就没有这个错误了。

dataTable的样式大家可以自己设置。

3.datatables的操作

单击选中行变色以及获取选中行的内容:

 //单击,取值,改样式
$("#gridtable tbody tr").click(function (e) {
if ($(this).hasClass('row_selected')) {
$(this).removeClass('row_selected');
}
else {
editor.$('tr.row_selected').removeClass('row_selected');
$(this).addClass('row_selected');
var aData = editor.fnGetData(this);
......//得到选中行的值,这些值在aData中,是以数组的形式出现,可以对这组值进行操作
}
});

单击某一行,如果此行已经被选中,则去除样式,如果没有选中,则 $(this).addClass('row_selected'),可以添加自己想要的样式。
    var aData = editor.fnGetData(this);可以得到点击行的值,上面代码中是得到新选中行的所有值。

双击选中行变色,获取选中行的内容以及弹出dialog:

 //双击
$("#gridtable tbody tr").dblclick(function () {
if ($(this).hasClass('row_selected')) { }
else {
editor.$('tr.row_selected').removeClass('row_selected');
$(this).addClass('row_selected');
} var aData = editor.fnGetData(this);
......//对得到的数据可以操作
$("#e_Attributes").dialog("open");//打开dialog });

双击的时候选中行变色以及获取选中行的内容和单击的时候一样,不过双击的时候多加了editor.$('tr.row_selected').removeClass('row_selected')代码,因为同一个datatables中选中行我们设为互斥的,一次最多只能选中一行,此段代码可以将先前选中的行的样式去掉。经过测试,我们不用判断原先有没有选中行,这段代码都能很好的工作。
     双击以后就可以打开dialog, $("#e_Attributes").dialog("open")用于打开dialog。

添加操作:

  //添加
$("#add").click(function () {
editor.$('tr.row_selected').removeClass('row_selected');
putNullValue();
$("#e_Attributes").dialog("open");
});

当点击add按钮的时候,将对话框中的选中行样式去掉,将弹出框里面的内容全部清除,最后打开dialog。
     编辑操作:

  //编辑
$("#edit").click(function () {
var productAttributeID = $("#productAttributeID").val();
if (productAttributeID != "" && productAttributeID != null) {
$("#e_Attributes").dialog("open");
} });

单击编辑按钮的操作看着很简单,因为我们在单击选中行的时候已经将工作做好了---得到选中行的值,并且赋给dialog中相应的元素。所以只用打开dialog即可。
     删除操作:

  //删除
$("#delete").click(function () {
var productAttributeID = $("#productAttributeID").val();
var productID = $("#productID").val();
if (productAttributeID != null && productAttributeID != "") {
if (confirm("Delete?")) {
$.ajax({
type: "GET",
url: "@Url.Action("DeleteAttribute", "Product")",
data: { ProductID: productID, ProductAttributeID: productAttributeID },//参数名要和Action 中的参数名相同
dataType: "html",
cache: false,
success: function (result) {
$("#d_Attributes").html(result);
$("#productAttributeID").val(null);
}
});
}
}
});

删除操作使用异步更新,删除时弹出的警告框代码为 if(confirm("需要显示的内容")){}。

现在我们需要的操作已经完成。

JQuery DataTables Editor---页面内容修改&&数据库信息修改 (2)的更多相关文章

  1. JQuery DataTables Editor---页面内容修改&&数据库信息修改 (1)

    我们使用jquery datatables 不光是为了对数据的展示,同时需要对数据惊行简单的操作,这个操作分为两个部分:1.页面内容的修改:2.对应的数据库信息的修改. 前一篇博文介绍了页面级的操作, ...

  2. js进阶 11-1 jquery中的页面内容操作的三个方法

    jquery中的页面内容操作的三个方法 一.总结 一句话总结:记三个方法即可.text,html,val.因为这里是方法,所以设置值的是后面方法的参数. 1.jquery中的页面内容操作的三个方法? ...

  3. 本地虚拟机部署线上php程序---不需要修改数据库信息

    1.特别注意:拿来线上php程序后一般是不需要修改config.php里面的数据库连接信息的,如果修改了会报错:站点已关闭.所以 2.5 步骤是需要省略的.如果拿来的是最开始的php源码,需要配置原始 ...

  4. IDEA修改数据库信息,结果修改信息中文成 ?

    今天在用IDEA进行插入数据库信息时,发生了一件意想不到的事情,特意记录一下,方便后续查看: 就是我在IDEA的驱动文件中配置了useUnicode = true & characterEnc ...

  5. jquery mobile将页面内容当成弹框进行显示

    注:必须使用相对应版本的jquery mobile css.不然无法正常显示 <div data-role="page" id="pageone"> ...

  6. 使用jQuery编辑删除页面内容,两种方式

    第一种,比较少的编辑用这种,直接在那块内容上编辑,失去焦点即完成 前几天做编辑框的时候,需要只修改一个状态 //编辑角色 function editTr($this){ thatTd=$($this) ...

  7. JQuery datatables 标题和内容居中显示

    1.如题,使用到了强大的表格插件datatables,要使标题和内容都居中显示,只需要在jsp引入css,写上如下内容即可: /*qiulinhe:2016年11月7日13:48:26*/ /* da ...

  8. jquery.dataTables列中内容居中问题?求解?

    .table > tbody > tr > td {  vertical-align: middle; }

  9. (后端)注意hibernate中对象的set方法修改数据库

    2017-10-16 公司里面其他人发现了一个问题,五粮液金品库存出现了问题,删除了库存也没还回来,一瓶一千多.而且在我的功能块,在我看出货详情的时候,诡异的事情发生了,第一眼看上去没问题呀,刷新了一 ...

随机推荐

  1. AngularJS路由和模板

    前言 如果想开发一款类似gmail的web应用,我们怎么做呢? 以jQuery的思路,做响应式的架构设计时,我们要监听所有点击事件,通过事件函数触发我们加载数据,提交,弹框,验证等的功能:以 Angu ...

  2. 初始seajs

    SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制 SeaJS本身遵循KISS(Keep It Simple, Stupid ...

  3. js scroll 教程

    <html><head><script language=javascript>function s(){var c = window.document.body. ...

  4. fdisk -l 找不到分区怎么办?想办法找到隐藏分区。

    centos6.6 装系统的时候,选取系统默认分区.装好后发现少了一大部分空间,通过fdisk -l 找不到分区,另外使用 parted -l 同样找不到消失的柱面. 如: [root@mysql]# ...

  5. 数据库sqlite的使用

    #import <Foundation/Foundation.h> @class student; @interface DataBaseHandle : NSObject //设置单例 ...

  6. nginx安装及配置支持php的教程(全)

    本文的实验环境为:Centos4.5,nginx版本为:nginx-0.7.26   pcre-7.8.tar.gz  正则表达式下载地址:ftp://ftp.csx.cam.ac.uk/pub/so ...

  7. python学习day12

    目录 html结构与标签 css样式   html结构之head <head> 标签用于定义文档的头部,它是所有头部元素的容器.<head> 中的元素可以引用脚本.指示浏览器在 ...

  8. shell基础——创建临时文件

    (1)当前时间命名临时文件: 按照一定的格式获取当前时间:date +%y-%m-%d_%H:%M:%S #generate the file name tmpfile=`date +%y-%m-%d ...

  9. 为TL-WR720N编译带mentohust和njit-client的openwrt固件

    openwrt的trunk版已经支持720N了.简单好多. 首先下载openwrt源码,我下的是trunk版 svn co svn://svn.openwrt.org/openwrt/trunk/ 然 ...

  10. mysql perl 抓取update语句

    <pre name="code" class="html"><pre name="code" class="ht ...