如何使用asp.net mvc的删除在jqGrid的倍数寄存器? [英] How to delete multiples registers in jqgrid using asp.net mvc?

查看:121
本文介绍了如何使用asp.net mvc的删除在jqGrid的倍数寄存器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您能帮我,我怎么可以删除在我的jqGrid选择了多个记录?我已经尝试了多种方法,但至今没有得到任何的成功。我会很感激的人谁可以帮我。

 的jQuery(#格表)。jqGrid的({
        //方向:RTL
        网址:/ Lojas / GetLojas
        数据类型:JSON,        MTYPE:'获取',
        高度:100%,
        colNames:['',
                    '名称',
                    '描述'
                  ]
        colModel:
            {
                名称:'myac',索引:'',宽度:65,固定:真,排序:假的,调整:假的,
                格式:'动作',
                formatoptions:{
                    键:真实,
                    delOptions:{recreateForm:真的,网址:'/ Lojas /删除',beforeShowForm:beforeDeleteCallback},
                    editformbutton:真,editOptions:{recreateForm:真的,网址:'/ Lojas /编辑',closeAfterEdit:真的,beforeShowForm:beforeEditCallback,closeOnEscape:真正}
                }
            },
            {键:真正的,隐藏的:真正的,名称:'ID',索引:'ID',sorttype:INT,编辑:假},
            {键:假的,名称:名称,索引:名称,可编辑:真正},
            {键:假的,名称:'说明',索引:描述,可编辑:真正}
        ]        viewrecords:真实,
        loadonce:真实,
        的rowNum:10,
        rowList:[5,10,15],
        jsonReader:{
            根:行
            页:页,
            总:总,
            记录:记录
            repeatitems:假的,
            ID:0
        },
        寻呼机:pager_selector,
        altRows:真实,
        autowidth:真实,
        多选:真实,
        multiboxonly:真实,
        排序顺序:递减,
        multiboxonly:真实,
        标题:Lojas Cadastradas
    });      // navButtons
    jQuery的(#格表)。jqGrid的('navGrid',pager_selector,
        {
            编辑:真的,
            补充:真,
            德尔:真实,
            搜索:真实,
            刷新:真实,
            观点:真正的,
        },
        {
            网址:'/ Lojas /编辑',
            closeOnEscape:真实,
            closeAfterEdit:真实,
            recreateForm:真
        },
        {
            网址:'/ Lojas /创建,
            closeOnEscape:真实,
            closeAfterAdd:真实,
            recreateForm:真
        },
        {
            网址:'/ Lojas /删除',
            closeOnEscape:真实,
            closeAfterDelete:真实,
            recreateForm:真
        },
        {
            //搜索表单
            recreateForm:真实,
            closeOnEscape:真实,
            closeAfterSearch:真实,
            multipleSearch:真
        },
        {
            //查看记录表
            recreateForm:真
        }
    )

code在我的控制器:

 公众的ActionResult删除(洛哈洛哈)
    {
        洛哈lojaToDelete = db.Lojas.Find(loja.Id);
        如果(lojaToDelete == NULL)
        {
            返回HttpNotFound();
        }
        db.Lojas.Remove(lojaToDelete);
        db.SaveChanges();
        返回查看(洛哈);
    }


解决方案

我建议你改变删除功能的原型公众的ActionResult删除(洛哈洛哈)

公共无效删除(字符串ID)

在code的主要问题如下。对应于文档 jqGrid的交 ID 参数网​​址:'/ Lojas /删除。您可以重命名 ID 参数的使用 prmNames 的名称。在这种情况下,你可以使用 prmNames:{ID:ID} ,但它不是真正需要

如果需要多行被删除,那么 ID 字符串将被逗号分隔,你可以使用像

 公共无效删除(字符串ID)
{
    变种的id = id.Split(,);
    的foreach(lojaId在IDS){
        洛哈lojaToDelete = db.Lojas.Find(lojaId);
        如果(lojaToDelete == NULL)
            抛出新的Htt presponseException(的HTTPStatus code.NotFound);
        db.Lojas.Remove(lojaToDelete);
    }
    db.SaveChanges();
}

Could you please help me how I could do to delete multiple records selected in my jqgrid? I've tried a number of ways, but so far not got any success. I will be grateful to anyone who can help me.

jQuery("#grid-table").jqGrid({
        //direction: "rtl",
        url: "/Lojas/GetLojas",
        datatype: 'json',

        mtype: 'Get',
        height: '100%',
        colNames: [ ' ',
                    'Name',
                    'Description'
                  ],
        colModel: [
            {
                name: 'myac', index: '', width: 65, fixed: true, sortable: false, resize: false,
                formatter: 'actions',
                formatoptions: {
                    keys: true,
                    delOptions: { recreateForm: true, url: '/Lojas/Delete', beforeShowForm: beforeDeleteCallback },
                    editformbutton: true, editOptions: { recreateForm: true, url: '/Lojas/Edit', closeAfterEdit: true, beforeShowForm: beforeEditCallback, closeOnEscape: true }
                }
            },
            { key: true, hidden: true, name: 'Id', index: 'Id', sorttype: "int", editable: false },
            { key: false, name: 'Name', index: 'Name', editable: true},
            { key: false, name: 'Description', index: 'Description', editable: true}
        ],

        viewrecords: true,
        loadonce: true,
        rowNum: 10,
        rowList: [5, 10, 15],
        jsonReader: {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            Id: "0"
        },
        pager: pager_selector,
        altRows: true,
        autowidth: true,
        multiselect: true,
        multiboxonly: true,
        sortorder: "desc",
        multiboxonly: true,
        caption: "Lojas Cadastradas"
    });

      //navButtons
    jQuery("#grid-table").jqGrid('navGrid', pager_selector,
        {   
            edit: true,
            add: true,
            del: true,
            search: true,
            refresh: true,
            view: true,
        },
        {
            url: '/Lojas/Edit',
            closeOnEscape: true,
            closeAfterEdit: true,
            recreateForm: true
        },
        {
            url: '/Lojas/Create',
            closeOnEscape: true,
            closeAfterAdd: true,
            recreateForm: true
        },
        {
            url: '/Lojas/Delete',
            closeOnEscape: true,
            closeAfterDelete: true,
            recreateForm: true
        },
        {
            //search form
            recreateForm: true,
            closeOnEscape: true,
            closeAfterSearch: true,
            multipleSearch: true
        },
        {
            //view record form
            recreateForm: true
        }
    )

Code in my controller:

public ActionResult Delete(Loja loja)
    {
        Loja lojaToDelete = db.Lojas.Find(loja.Id);
        if (lojaToDelete == null)
        {
            return HttpNotFound();
        }
        db.Lojas.Remove(lojaToDelete);
        db.SaveChanges();
        return View(loja);
    }

解决方案

I recommend you to change prototype of Delete function public ActionResult Delete(Loja loja) to

public void Delete(string id)

The main problem in your code is the following. Corresponds to the documentation jqGrid post id parameter to url: '/Lojas/Delete'. You can rename the name of id parameter using prmNames. In the case you can use prmNames: {id: "Id"}, but it's not really required.

If multiple rows needed be deleted then id string will be comma separated and you can use something like

public void Delete(string id)
{
    var ids = id.Split(',');
    foreach (lojaId in ids) {
        Loja lojaToDelete = db.Lojas.Find(lojaId);
        if (lojaToDelete == null)
            throw new HttpResponseException(HttpStatusCode.NotFound);
        db.Lojas.Remove(lojaToDelete);
    }
    db.SaveChanges();
}

这篇关于如何使用asp.net mvc的删除在jqGrid的倍数寄存器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆