Jquery JqGrid:设置“的位置”;“未选择任何行”;对话

Jquery JqGrid:设置“的位置”;“未选择任何行”;对话,jquery,asp.net-mvc,jqgrid,Jquery,Asp.net Mvc,Jqgrid,因此,我找到了一些很好的修复方法,可以使确认删除、编辑、查看等对话框居中。但是,当网格上未选择任何行时,将出现一个不同的对话框,显示一个简单的“警告:请选择行”。除此对话框语法糟糕外,我似乎无法找到处理此对话框事件的方法,以便根据需要重新定位 我为navGrid中我能找到的每个事件添加了处理程序,并使用BugZilla查看它是否会在这些事件中的任何一个上停止,但没有任何效果选择行时,将触发删除事件。思想?下面是我的代码: $('#sessionGrid').jqGrid({...}).navGr

因此,我找到了一些很好的修复方法,可以使确认删除、编辑、查看等对话框居中。但是,当网格上未选择任何行时,将出现一个不同的对话框,显示一个简单的“警告:请选择行”。除此对话框语法糟糕外,我似乎无法找到处理此对话框事件的方法,以便根据需要重新定位

我为navGrid中我能找到的每个事件添加了处理程序,并使用BugZilla查看它是否会在这些事件中的任何一个上停止,但没有任何效果选择行时,将触发删除事件。思想?下面是我的代码:

$('#sessionGrid').jqGrid({...}).navGrid('#sessionPager', { 
            add: false,
            edit: false,
            del: true,
            search: false,
            closeOnEscape: true
        }, {
            afterShowForm: function (form) {
                form.closest('div.ui-jqdialog').center();
            }
        }, {
            afterShowForm: function (form) {
                form.closest('div.ui-jqdialog').center();
            }
        }, {
            caption: "Delete",
            msg: "Delete the selected sessions?",
            bSubmit: "Delete",
            bCancel: "Cancel",
            afterShowForm: function (form) {
                form.closest('div.ui-jqdialog').center();
            }
        }, {
            afterShowForm: function (form) {
                form.closest('div.ui-jqdialog').center();
            }
        }, {
            afterShowForm: function (form) {
                form.closest('div.ui-jqdialog').center();
            }
        });
中的以下代码用于显示此对话框:

if (o.del) {
    tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
    pDel = pDel || {};
    $(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.delicon+"'></span>"+o.deltext+"</div>");
    $("tr",navtbl).append(tbd);
    $(tbd,navtbl)
    .attr({"title":o.deltitle || "",id: pDel.id || "del_"+elemids})
    .click(function(){
        if (!$(this).hasClass('ui-state-disabled')) {
            var dr;
            if($t.p.multiselect) {
                dr = $t.p.selarrrow;
                if(dr.length===0) {dr = null;}
            } else {
                dr = $t.p.selrow;
            }
            if(dr){
                if($.isFunction( o.delfunc )){
                    o.delfunc.call($t, dr);
                }else{
                    $($t).jqGrid("delGridRow",dr,pDel);
                }
            } else  {
// !!! The actual dialog is displayed here  -
                $.jgrid.viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:true});$("#jqg_alrt").focus();
            }
        }
        return false;
    }).hover(
        function () {
            if (!$(this).hasClass('ui-state-disabled')) {
                $(this).addClass("ui-state-hover");
            }
        },
        function () {$(this).removeClass("ui-state-hover");}
    );
    tbd = null;
}
本质上,您可以将
id
参数作为delete参数的一部分传递,如果不传递,它将默认为
elemids
,并为其分配网格的DOM id(例如:您的选择器将是
“#del_mygrid”

无论如何,然后您可以使用类似于
jQuery('div.ui-jqdialog').center()的东西
中单击事件处理程序,根据需要重新定位对话框

这有用吗


另外,实际的对话框文本位于
grid.locale en.js
-

alerttext:“请选择行”

我同意这很可怕:) 好消息是这是一个单独的js文件,因此您可以根据需要对其进行修改。

中的以下代码用于显示此对话框:

if (o.del) {
    tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
    pDel = pDel || {};
    $(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.delicon+"'></span>"+o.deltext+"</div>");
    $("tr",navtbl).append(tbd);
    $(tbd,navtbl)
    .attr({"title":o.deltitle || "",id: pDel.id || "del_"+elemids})
    .click(function(){
        if (!$(this).hasClass('ui-state-disabled')) {
            var dr;
            if($t.p.multiselect) {
                dr = $t.p.selarrrow;
                if(dr.length===0) {dr = null;}
            } else {
                dr = $t.p.selrow;
            }
            if(dr){
                if($.isFunction( o.delfunc )){
                    o.delfunc.call($t, dr);
                }else{
                    $($t).jqGrid("delGridRow",dr,pDel);
                }
            } else  {
// !!! The actual dialog is displayed here  -
                $.jgrid.viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:true});$("#jqg_alrt").focus();
            }
        }
        return false;
    }).hover(
        function () {
            if (!$(this).hasClass('ui-state-disabled')) {
                $(this).addClass("ui-state-hover");
            }
        },
        function () {$(this).removeClass("ui-state-hover");}
    );
    tbd = null;
}
本质上,您可以将
id
参数作为delete参数的一部分传递,如果不传递,它将默认为
elemids
,并为其分配网格的DOM id(例如:您的选择器将是
“#del_mygrid”

无论如何,然后您可以使用类似于
jQuery('div.ui-jqdialog').center()的东西
中单击事件处理程序,根据需要重新定位对话框

这有用吗


另外,实际的对话框文本位于
grid.locale en.js
-

alerttext:“请选择行”

我同意这很可怕:)
好消息是这是一个单独的js文件,因此您可以根据需要对其进行修改。

是的,这很有帮助。谢谢你!是的,这很有帮助。谢谢你!