zoukankan      html  css  js  c++  java
  • Jquery easyui datagrid 删除多行问题

    http://www.cnblogs.com/Dtscal/archive/2012/07/04/2576639.html

    最近模仿了刘冬大哥的<开源框架完美组合之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: '编码',  '80', align: 'center' },

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

    { field: 'Desctiption', title: '描述',  '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 = "删除成功" });

    }

  • 相关阅读:
    jmeter压测学习12-设置持续压测时间(调度器的使用)
    jmeter压测学习11-模拟浏览器访问web页面
    pytest文档73-pytest+yaml实现接口自动化框架之用例参数关联
    selenium+python自动化101-使用execute_script() 方法获取 JavaScript 返回值
    pytest文档72- 使用 template 替换 yaml 文件的变量
    pytest文档71-pytest+yaml实现接口自动化框架
    容器一直处于Create状态
    CAS原理与协议
    Linux route命令详解和使用示例(查看和操作IP路由表)
    Linux reboot全过程
  • 原文地址:https://www.cnblogs.com/zkwarrior/p/4823032.html
Copyright © 2011-2022 走看看