jQuery控制表格行移动,序号不变
@model Gd.NetSign.Controllers.DTO.SysPamaterDTO
@{
ViewBag.Title = "SysPamatList";
//Layout = "~/Views/Masters/Frame.cshtml";
}
<script type="text/javascript">
//检索
function doSearch() { loading();
$.ajax({
type: "post",
url: '/Spfsz/SysPamatList?SysPamaterName=' + $('#SysPamaterName').val() + "&SysPamaterRemark=" + $('#SysPamaterRemark').val() + "&ParentKeyName=" + "@Model.ParentKeyName",
data: {},
dataType: "html",
error: function (msg) { unloading(); },
success: function (result) {
$("#List").html(result);
unloading(); }
}); }
//-->
//保存
function DoSave() {
loading("数据提交中...请稍后");
var previewOptions = {
url: "/Spfsz/SaveSysPamat?isOder=1&ParentKeyName=" + "@Model.ParentKeyName",
type: 'POST',
//data:_list: _list,
//beforeSubmit: submitCheck,
iframe: false,
success: function (result) {
unloading();
if (result.Success == true) { $.Ok(result.Msg, function () {
loading();
$.ajax({
type: "post",
url: "/Spfsz/SysPamatList?ParentKeyName=" + "@Model.ParentKeyName",
data: {},
dataType: "html",
error: function (msg) { unloading(); },
success: function (result) {
$("#List").html(result);
unloading(); }
});
});
}
if (result.Success == false) {
$.Error(result.Msg);
}
},
error: function () {
unloading();
}
};
$("#OperaForm").ajaxSubmit(previewOptions);
return false;
}
//保存
function DoSaveSingle() {
loading("数据提交中...请稍后");
var previewOptions = {
url: "/Spfsz/SaveSysPamat?ParentKeyName=" + "@Model.ParentKeyName",
type: 'POST',
//data:_list: _list,
//beforeSubmit: submitCheck,
iframe: false,
success: function (result) {
unloading();
if (result.Success == true) { $.Ok(result.Msg, function () {
loading();
$.ajax({
type: "post",
url: "/Spfsz/SysPamatList?ParentKeyName=" + "@Model.ParentKeyName",
data: {},
dataType: "html",
error: function (msg) { unloading(); },
success: function (result) {
$("#List").html(result);
unloading(); }
});
});
}
if (result.Success == false) {
$.Error(result.Msg);
}
},
error: function () {
unloading();
}
};
$("#OperaForm").ajaxSubmit(previewOptions);
return false;
} </script>
<style>
tr input {
border: hidden;
background-color: transparent;
width: 100%;
height: 20px;
margin-left: 2px;
} table tr td {
text-align: left;
}
</style> <div class="div_btnContainer">
<span>参数名:</span><input id="SysPamaterName" class="txt" type="text" value="@Model.SysPamaterName" />
<span>参数说明:</span><input id="SysPamaterRemark" class="txt" type="text" value="@Model.SysPamaterRemark" />
<input type="button" class="btn" value="检索" onclick="doSearch();" /> <input type="button" id="upMove" value="上移" @(Model.IsNullField == 1 ? "class=btn" : " class=btn_disable disabled=disabled") onclick="up_exchange_line();" />
<input type="button" id="DmMove" value="下移" @(Model.IsNullField == 1 ? "class=btn" : " class=btn_disable disabled=disabled ") onclick="down_exchange_line();" />
<input type="button" class="btn" value="保存" @(Model.IsNullField == 1 ? "onclick=DoSave()" : "onclick=DoSaveSingle()") />
</div>
<form id="OperaForm" method="post" action="" enctype="multipart/form-data">
<div class="form">
<table id="floorHouse" cellpadding="1" cellspacing="1" class="tabClass">
<thead>
<tr>
<th style="width: 20px" title="选择">选择</th>
<th style="width: 50px;" title="参数名">参数名</th>
<th style="width: 100px;" title="参数值">参数值</th>
<th style="width: 300px;" title="参数说明">参数说明</th> </tr>
</thead>
<tbody>
@{string line = "";
var listLength = Model.SysPamaterList.Count();
for (int i = 0; i < listLength; i++)
{
line = "line" + (i + 1);
<tr id="@line"> <td>
<input name="[@(i)].NodeIdx" id="subcheck" onclick="chk(this);" type="checkbox" value="@(i+1)" />
<input hidden="hidden" name="[@(i)].NodeIdx" id="NodeIdx" type="text" value="@(i+1)" />
</td>
<td title="@Model.SysPamaterList[i].KeyName" id="cknull">
<input type="text" id="KeyName" readonly="readonly" name="[@(i)].KeyName" value="@Model.SysPamaterList[i].KeyName" />
</td>
<td title="@Model.SysPamaterList[i].KeyValue" id="cknull">
<input type="text" id="KeyValue" name="[@(i)].KeyValue" value="@Model.SysPamaterList[i].KeyValue" />
</td>
<td title="@Model.SysPamaterList[i].KeyDis" id=" cknull">
<input type="text" id="KeyDis" readonly="readonly" name="[@(i)].KeyDis" value="@Model.SysPamaterList[i].KeyDis" />
<input type="text" id="IsNewNetSign" hidden="hidden" name="[@(i)].IsNewNetSign" value="@Model.SysPamaterList[i].IsNewNetSign" /> </td>
</tr>
}
}
</tbody>
</table> </div>
</form> <script language="javascript"> var currentStep = new Array();
var max_line_num = parseInt("@Model.SysPamaterList.Count()");
//上移
function up_exchange_line() {
if (!checks())
return;
//升序
currentStep.sort(function (a, b) { return a > b ? 1 : -1 });
for (var i = 0; i < currentStep.length; i++) {
if (currentStep[i] == 0 || currentStep[i] == null) {
continue;
}
else {
var upStep = currentStep[i] - 1;
if (upStep < 1 || $('#line' + upStep + ' input[type="checkbox"]').attr("checked")) {
continue;
}
//取值
var keynameNext = $("#line" + upStep + " input[id='KeyName']").val();
var keyvalueNext = $("#line" + upStep + " input[id='KeyValue']").val();
var KeyDisNext = $("#line" + upStep + " input[id='KeyDis']").val();
var IsNewNetSignNext = $("#line" + upStep + " input[id='IsNewNetSign']").val();
var keyname = $("#line" + currentStep[i] + " input[id='KeyName']").val();
var keyvalue = $("#line" + currentStep[i] + " input[id='KeyValue']").val();
var KeyDis = $("#line" + currentStep[i] + " input[id='KeyDis']").val();
var IsNewNetSign = $("#line" + currentStep[i] + " input[id='IsNewNetSign']").val();
//换值
$("#line" + upStep + " input[id='KeyName']").val(keyname);
$("#line" + upStep + " input[id='KeyValue']").val(keyvalue);
$("#line" + upStep + " input[id='KeyDis']").val(KeyDis);
$("#line" + upStep + " input[id='IsNewNetSign']").val(IsNewNetSign);
$("#line" + currentStep[i] + " input[id='KeyName']").val(keynameNext);
$("#line" + currentStep[i] + " input[id='KeyValue']").val(keyvalueNext);
$("#line" + currentStep[i] + " input[id='KeyDis']").val(KeyDisNext);
$("#line" + currentStep[i] + " input[id='IsNewNetSign']").val(IsNewNetSignNext);
//修改选中
$('#line' + upStep + ' input[type="checkbox"]').attr("checked", true);
$('#line' + currentStep[i] + ' input[type="checkbox"]').attr("checked", false);
currentStep[i] = upStep; } } }
//下移
function down_exchange_line() {
if (!checks())
return;
//倒序
currentStep.sort(function (a, b) { return a < b ? 1 : -1 });
for (var i = 0; i < currentStep.length; i++) {
if (currentStep[i] == "0" || currentStep[i] == null) {
continue; }
else { var nextStep = parseInt(currentStep[i]) + 1;
if (nextStep > max_line_num || $('#line' + nextStep + ' input[type="checkbox"]').attr("checked")) {
continue;
}
//取值
var keynameNext = $("#line" + nextStep + " input[id='KeyName']").val();
var keyvalueNext = $("#line" + nextStep + " input[id='KeyValue']").val();
var KeyDisNext = $("#line" + nextStep + " input[id='KeyDis']").val();
var IsNewNetSignNext = $("#line" + nextStep + " input[id='IsNewNetSign']").val();
var keyname = $("#line" + currentStep[i] + " input[id='KeyName']").val();
var keyvalue = $("#line" + currentStep[i] + " input[id='KeyValue']").val();
var KeyDis = $("#line" + currentStep[i] + " input[id='KeyDis']").val();
var IsNewNetSign = $("#line" + currentStep[i] + " input[id='IsNewNetSign']").val();
//换值
$("#line" + nextStep + " input[id='KeyName']").val(keyname);
$("#line" + nextStep + " input[id='KeyValue']").val(keyvalue);
$("#line" + nextStep + " input[id='KeyDis']").val(KeyDis);
$("#line" + nextStep + " input[id='IsNewNetSign']").val(IsNewNetSign);
$("#line" + currentStep[i] + " input[id='KeyName']").val(keynameNext);
$("#line" + currentStep[i] + " input[id='KeyValue']").val(keyvalueNext);
$("#line" + currentStep[i] + " input[id='KeyDis']").val(KeyDisNext);
$("#line" + currentStep[i] + " input[id='IsNewNetSign']").val(IsNewNetSignNext);
//修改选中
$('#line' + nextStep + ' input[type="checkbox"]').attr("checked", true);
$('#line' + currentStep[i] + ' input[type="checkbox"]').attr("checked", false);
currentStep[i] = nextStep; }
}
}
//增加减少id值
function chk(box) {
if ($(box).attr("checked") == "checked") {
//currentStep.push($(box).parent().parent().find("td").eq(0).text())
currentStep.push(parseInt($(box).val()));
}
else { for (var i = 0; i < currentStep.length; i++) {
if (currentStep[i] == $(box).val()) {
currentStep.remove(i);
//.remove(i);
} } } }
Array.prototype.remove = function (dx) {
if (isNaN(dx) || dx > this.length) { return false; }
for (var i = 0, n = 0; i < this.length; i++) {
if (this[i] != this[dx]) {
this[n++] = this[i]
}
}
this.length -= 1
}
function checks() {
var chk_value = [];
$('input:checked').each(function () {
chk_value.push($(this).val());
});
if (chk_value.length <= 0) {
//alert("请选择一条数据");
$.Warning('请选择一条数据!');
return false; }
return true;
}
</script>
jQuery控制表格行移动,序号不变的更多相关文章
- jQuery实现表格行的动态增加与删除(改进版)
之前写过一个简单的利用jQuery实现表格行的动态增加与删除的例子,有些人评论说"如果表格中是input元素,那么删除后的东西都将自动替换,这样应该是有问题的,建议楼主改进!",故 ...
- AppBoxPro - 细粒度通用权限管理框架(可控制表格行内按钮)源码提供下载
特别声明: 提供的源代码已经包含了 AppBoxPro 的全部源代码,用 VS2012 打开项目后,直接 Ctrl+F5 可以运行起来(默认使用VS自带的LocalDB数据库). FineUIPro是 ...
- jQuery实现表格行上移下移和置顶
jQuery实现表格行上移下移和置顶 我们在操作列表数据的时候,需要将数据行排列顺序进行调整,如上移和下移行,将行数据置顶等,这些操作都可以在前端通过点击按钮来完成,并且伴随着简单的动态效果,轻松实现 ...
- jquery更改表格行顺序实例
使用jquery写的更改表格行顺序的小功能 表格部分: 复制代码代码如下: <table class="table" id="test_table"> ...
- 用jquery控制表格奇偶行及活动行颜色
虽然jquery流行已经很多年了,一直都感觉很难,也没有花时间去学习它,只是偶尔哪天心血来潮了去看一点点,时隔多日又会忘得一干二净.最近用到表格奇偶行不同色,不得不去再看jquery,虽然感觉还是难, ...
- jQuery实现表格行的动态增加与删除 序号 从 1开始排列
<table id="tab" border="1" width="60%" align="center" sty ...
- jQuery学习笔记(6)--复选框控制表格行高亮
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...
- 使用jquery扩展表格行合并方法探究
1.前言 最近项目中用到一个表格中对于相同内容的数据进行行合并的需求,本来想从网上找个现成的,省的自己再造轮子.于是就开始谷歌了...不过在搜索的过程中,发现找到的工具类很多都有一个前提,就是该表格中 ...
- jQuery实现表格行的动态增加与删除
删除之前删除2行后: 1<script> 8 $(document).ready(function(){ 9 //<tr/>居中 10 $("#tab tr" ...
随机推荐
- schemes-universalLink-share_IOS-android-WeChat-chunleiDemo
schemes-universalLink-share_IOS-android-WeChat-chunleiDemo The mobile terminal share page start APP ...
- Ubuntu14.04 bind9配置
apt-get install bind9 配置域名: cn.archive.ubuntu.com 对应IP: 10.60.233.244 vim /etc/bind/name.conf.defaul ...
- Hybrid App(二)Cordova+android入门
上一篇介绍了app开发如何选型,由于公司人员组织结构的原因(app native较少,每个月一次迭代),因此选型hybrid app. 接下来说一下环境搭建: 一.Java环境 (1)安装jdk (2 ...
- 浙大pat1013题解
1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...
- crontab记录
简单说一下分类: 1.系统定时路径在/etc/crontab,直接进行编辑即可,这里注意,设定执行时间之后,第二个要跟用户名 ,例如: 1 * * * * root run-parts /etc/cr ...
- docker命令和后台参数
Docker官方为了让用户快速了解Docker,提供了一个 交互式教程 ,旨在帮助用户掌握Docker命令行的使用方法. Docker 命令行 下面对Docker的命令清单进行简单的介绍,详细内容在后 ...
- C# 手机格式验证
C# 手机格式验证 //电信手机号码正则 Regex dReg = new Regex(@"^1[3578][01379]\d{8}$"); //联通手机号正则 Regex tRe ...
- React Route
有幸你能看来我的这篇文章,这篇文章是继React后面写的Reactroute,所以你需要看看我前面整理的React笔记再来看Reactroute可能更容易 All the work we've don ...
- Java内存一致性
问题 前段时间在做服务注册发现的时候,有一处这样的逻辑,先发现下游服务,然后再是服务启动,服务启动完毕才能注册服务,因为注册一个在启动过程中的服务显然是不正确的设计. 然而很不巧,我们目前使用的TTh ...
- css3技巧属性之text-overflow
text-overflow:clip | ellipsis 默认值:clip 取值: clip: 当对象内文本溢出时不显示省略标记(...),而是将溢出的部分裁切掉. ellipsis: 当对象内文本 ...