Jquery easyui datagrid 刪除多行問題


最近模仿了劉冬大哥的<開源框架完美組合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文雙語言小型企業網站Demo>之后發現一個問題就是前台datagrid如果刪除多行之后,然后再編輯就不能進入對應的行信息.如圖:

前台選擇多行->刪除

刪除成功

 

這里變成了刪除的編碼,

 

前台代碼

<script type="text/javascript">

$(function () {

$('#test').datagrid({

title: '風格信息',

iconCls: 'icon-save',

fit: true,

nowrap: false,

striped: true,

//collapsible: true,

url: '/GenerManage/LoadAllByPage/',

sortName: 'GenreId',

remoteSort: false,

idField: 'GenreId',

frozenColumns: [[

     { field: 'ck', checkbox: true }

                ]],

columns: [[

             { field: 'GenreId', title: '編碼', width: '80', align: 'center' },

                    { field: 'Name', title: '名稱', width: '200', align: 'left' },

{ field: 'Desctiption', title: '描述', width: '350', align: 'left' }

                ]],

pagination: true,

rownumbers: true,

toolbar: [{

id: 'btnadd',

text: '添加',

iconCls: 'icon-add',

handler: function () {

this.href = '/GenerManage/View/';

}

}, {

id: 'btnupdate',

text: '修改',

iconCls: 'icon-save',

handler: function () {

var rows = $('#test').datagrid('getSelected');

if (rows) {

this.href = "/GenerManage/View/" + rows.GenreId;

}

else {

$.messager.alert('提示', '請選擇要修改的數據');

return;

}

}

}, '-', {

id: 'btncut',

text: '刪除',

iconCls: 'icon-cut',

handler: function () {

//獲取表格選擇行

var rows = $('#test').datagrid('getSelections');

//判斷是否選擇行

if (!rows || rows.length == 0) {

$.messager.alert('提示', '請選擇要刪除的數據!', 'info');

return;

}

 

var parm;

//循環給提交刪除參數賦值(音樂風格編碼)

$.each(rows, function (i, n) {

if (i == 0) {

parm = "idList=" + n.GenreId;

} else {

parm += "&idList=" + n.GenreId;

}

});

$.messager.confirm('提示', '是否刪除選中數據?', function (r) {

if (!r) {

return;

}

//提交

$.post('/GenerManage/Delete/', parm,

function (msg) {

if (msg.IsSuccess) {

$.messager.alert('提示', msg.Message, 'info', function () {

//重新加載當前頁

$('#test').datagrid('reload');

});

} else {

$.messager.alert('提示', msg.Message, 'info')

}

});

});

}

}]

});

var p = $('#test').datagrid('getPager');

if (p) {

$(p).pagination({

onBeforeRefresh: function () {

alert('before refresh');

}

});

}

});

</script>

后台代碼

//顯示創建或者修改信息

public ActionResult View(int? id)

{

Genre g =

(from gener in msdb.Genre

where gener.GenreId == id

select gener).FirstOrDefault();

if (g == null)

g = new Genre();

return View(g);

}

[HttpPost]

public ActionResult Delete(IList<int> idList)

{

//判斷判斷是否刪除多行數據

if (idList.Count > 1)

{

foreach (int i in idList)

{

var gener =

from g in msdb.Genre

where g.GenreId == i

select g;

msdb.Genre.DeleteAllOnSubmit(gener);

}

}

else

{

var gener =

from g in msdb.Genre

where g.GenreId == idList.First()

select g;

msdb.Genre.DeleteAllOnSubmit(gener);

}

//這里刪除多條記錄的時候提示varchar-int失敗所以用上面的辦法

// msdb.Genre.DeleteAllOnSubmit(idList.Cast<Genre>().ToList());

msdb.SubmitChanges();

return Json(new { IsSuccess = true, Message = "刪除成功" });

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM