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" ...
随机推荐
- 安装oracle 10g时提示:操作系统版本: 必须是5.1或者5.2 怎么办?
1.在安装目录中搜索refhost.xml,然后在适当位置添加以下内容,注意括号配对 <!--Microsoft Windows 7--> <OPERATING_SYSTEM> ...
- python从初识到精通1
Python3 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型& ...
- 某网站看到的某神的Symfony_使用心得
1.symfony2这种量级的框架怎么可能有捷径可走?其定位是松藕合和易扩展,并不是很容易的事.sf2是靠configuration系统(它可以把各种语义化yml配置转为数组)和服务容器概念来实现的b ...
- tabbar颜色与文字大小,状态栏样式
tabbar文字颜色与大小 [self.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor wh ...
- mvc前端样式自定义
1.别忘记加 htmlAttributes @Html.EditorFor(model => model.Quantity, new { htmlAttributes = new { @clas ...
- github本地库及clone常用命令
新建本地库 1. cd d: 2. mkdir git 3. cd git 4. git init 5. git remote add origin git@github.com:swportal/ ...
- HttpHelps类
/// <summary> /// 类说明:HttpHelps类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理 /// 重要提示 ...
- centos7 crontab笔记
1.crontab相关命令 语法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr] 参数: -e 编辑该用户的计时器设 ...
- mysql最大连接数问题
进入mysql系统就, 查询最大连接数:show variables like 'max_connections'; 修改最大连接数:set global max_connections=1000;
- HDU 4262 Juggler
点我看题 初步想法是模拟,找到下一个位置并记录操作数,O(n^2)肯定会超时. 那么进行优化,会发现到下一位置的操作数就是两个位置之间存在的数的个数,于是就变成了计数问题. 不难想到用树状数组或线段树 ...