接上篇博文,详细说一下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. [Non-original]OS X How do I unset an IP address set with ifconfig?

    I recently used ifconfig en1 1.2.3.4 to set the IP address of a network interface (specifically, the ...

  2. TypeError: 'QueryDict' object is not callable

    id = int(request.POST('id')) Error message: TypeError: 'QueryDict' object is not callable Error rese ...

  3. 判断括号匹配(nyoj2水)

    括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在,有一行括号序列,请你检查这行括号是否配对.   输入 第一行输入一个数N(0<N<=1 ...

  4. U盘详解

    摘要:U盘,称呼最早来源于朗科公司生产的一种新型存储设备,名曰“优盘”,使用USB接口进行连接.USB接口就连到电脑的主机后,U盘的资料可与电脑交换.而之后生产的类似技术的设备由于朗科已进行专利注册, ...

  5. poI地址纠偏查询存储过程理解

    1.POI存储过程查询 服务器类型:PostgreSQL function name 函数名字 address_parse_no_save(lon float8, lat float8) DECLAR ...

  6. C链表之创建简单静态链表

    C代码: #include<stdio.h> #include<stdlib.h> #include<malloc.h> //创建简单静态链表 typedef st ...

  7. uva 10041 Vito's Family_贪心

    题意:给你n个房子的距离,问那个房子离别的房子的距离最近,并且输出与别的房子距离的总和 思路:排序一下,中间的房子离别房子距离必然是最少的. #include <iostream> #in ...

  8. CentOS7 yum lamp 虚拟主机配置 lamp各组件简单影响性能的参数调整--for 一定的环境需求

    LAMP Server on CentOS 7 Updated Tuesday, January 13, 2015 by Joel Kruger This guide provides step-by ...

  9. #include <boost/unordered_set.hpp>

    boost.unordered在C++标准容器std::set,std::multiset,std::map和std::multimap的基础上多实现了四个容器:boost::unordered_se ...

  10. OC基础12:数字、字符串和集合1

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.有时要将一些数字数据类型的值当做对象来 ...