jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 如何在jqGrid中选择数据行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是jqGrid的首发,我在页面中有2个jqGrid,在Grid1中我有inCustom和OutCustom我希望用户点击Grid获取Data inCustom和outCustom来编写这段代码

var grid = $('#list');
grid.jqGrid({
    url: 'jQGridHandler.ashx',postData: { ActionPage: 'Clearancerequest',Action: 'Fill' },ajaxGridoptions: { cache: false },loadonce: true,direction: "rtl",datatype: 'json',height: 600,width: 1000,colNames: ['','',' ',''],colmodel: [
        { name: 'requEST_ID',width: 100,sortable: true,hidden: true },{ name: 'requEST_DATE',width: 50,sortable: true },{ name: 'requEST_NO',width: 60,{ name: 'CUSTOMER_ID',{ name: 'TRANSPORT_TYPE',width: 40,{ name: 'CLEARANCE_TYPE',{ name: 'IMPORT_EXPORT',width: 30,editable: false,edittype: 'checkBox',editoptions: { value: "True:false" },formatter: "checkBox",formatoptions: { disabled: false },hidden: true
        },{ name: 'WAYBILL_NO',{ name: 'WAYBILL_OFFICE',{ name: 'MANIFEST',width: 200,{ name: 'STORE_BILL',{ name: 'DIRECT_NO',{ name: 'STORE_DATE',{ name: 'INOUT_DATE',{ name: 'sourcE_COUNTRY',{ name: 'sourcE_CITY',width: 80,{ name: 'DESTinATION_COUNTRY',{ name: 'IN_CUSTOMS',{ name: 'OUT_CUSTOMS',{ name: 'INSURER_ID',{ name: 'INSURANCE_NO',{ name: 'CLEARANCE_PERSON',{ name: 'PROXY_NO',{ name: 'FACTOR_NO',{ name: 'SHIP_NAME',{ name: 'TRAVEL_NO',{ name: 'INDENT_NO',{ name: 'COOTAG_NO',{ name: 'PERMIT_NO',{ name: 'CLEARANCE_NO',{ name: 'CARNETIR_NO',{ name: 'PURCHASE_TYPE',{ name: 'all_VALUE',{ name: 'FREIGHT_STATUS',{ name: 'COPY_ORIGINAL',{ name: 'REMARK',{ name: 'details',width: 20,sortable: false,search: false,formatter: function () {
                return "<span class='ui-icon ui-icon-document'></span>";
            }
        }
    ],gridview: true,rowNum: 30,rowList: [30,60,90],pager: '#pager',sortname: 'WorkOrderNo',viewrecords: true,sortorder: 'ASC',rownumbers: true,beforeSELEctRow: function (rowid,E) {
        var iCol = $.jgrid.getCellIndex(e.target);
        // alert(rowid);
        console.log(rowid);
        //listItem
        console.log($.jgrid.getCellIndex(e.target));
        if ($.jgrid.getCellIndex(e.target) == 37) {
            $("#listItem").jqGrid("GridUnload");
            var gridItem = $('#listItem');
            gridItem.jqGrid({
                url: 'jQGridHandler.ashx',postData: { ActionPage: 'ClearanceItems',Action: 'Fill',requestId: rowid },height: 200,'ا','  ',colmodel: [
                    { name: 'requEST_ID',{ name: 'ITEM_NO',{ name: 'GOODS_DESCRIPTION',{ name: 'QUANTITY',{ name: 'PACKING_TYPE',{ name: 'GROSS_WEIGHT',{ name: 'TARE_WEIGHT',{ name: 'MEASUREMENT_TYPE',{ name: 'GOODS_PRICE',{ name: 'GOODS_CURRENCY',{ name: 'GOODS_CURRENCY_RATE',{ name: 'FREIGHT_PRICE',{ name: 'FREIGHT_CURRENCY',{ name: 'FREIGHT_CURRENCY_RATE',{ name: 'INSURANCE_PRICE',{ name: 'INSURANCE_CURRENCY',{ name: 'INSURANCE_CURRENCY_RATE',{ name: 'TARIFF_NO',{ name: 'CUSTOM_PRICE',{ name: 'WARRANTY_PRICE',{ name: 'VEHICLE_TYPE',{ name: 'VEHICLE_NO',{ name: 'WAREHOUSE_ID',hidden: true }
                ],rowNum: 20,rowList: [20,40,60],pager: '#pagerItem',rownumbers: true
            });
            gridItem.jqGrid('navGrid','#pagerItem',{ add: true,edit: true,del: true },{},{ multipleSearch: true,overlay: false,width: 460 });

            var myGrid = grid;
            var selRowId = myGrid.jqGrid('getGridParam','selrow');
            celValue = myGrid.jqGrid('getCell',selRowId,'IN_CUSTOMS');
            celValue2 = myGrid.jqGrid('getCell','OUT_CUSTOMS');

            console.log(celvalue);

            console.log(celValue2);

            alert(celvalue);
            alert(celValue2);

            $("#POPUP2").dialog({ width: 780 });
        }

        return true;
    }
});
grid.jqGrid('navGrid','#pager',{ add: false,edit: false,width: 460 })
         .navButtonAdd("#pager",{
             caption: "",buttonicon: "ui-icon-plus",onClickButton: function () {
                 // alert("Adding Row");
                 $("#POPUP1").dialog({ width: 730 });
             },position: "first"

         })
         .navButtonAdd("#pager",buttonicon: "ui-icon ui-icon-pencil",onClickButton: function () {

             },position: "first"

         })
          .navButtonAdd("#pager",{
              caption: "",buttonicon: "ui-icon ui-icon-trash",onClickButton: function () {

              },position: "first"
          });

首次单击detils按钮获取false值但之后返回正确的数据

谢谢大家

解决方法

首先,我回答你的主要问题.问题是你在beforeSELEctRow回调中获得了selrow参数(所选行的id).首次单击“详细信息”按钮时,不会选择任何行.因此myGrid.jqGrid(‘getGridParam’,’selrow’)将返回null,您将无法使用getCell从id = null的行的’IN_CUSTOMS’和’OUT_CUSTOMS’列中获取值.

你总是从beforeSELEctRow回调中返回true.因此,如果用户单击“详细信息”按钮,则不希望阻止行选择.在这种情况下,我建议你最好使用onCellSelect回调.顺便说一下,回调有iCol(被点击的单元格的索引)作为附加参数.它将进一步简化您的代码.

下一句话.您在所有列中使用sortable:true,但sortable属性认值已经为true(请参阅the documentation).另外我建议你在jqGrid的定义中使用column templates.例如,在第一个网格的定义中,您使用多次相同的属性来定义带有复选框的隐藏列.此外,还有许多列的宽度为100,所有列都有空列标题”.因此,您可以将第一个网格定义为

var grid = $('#list'),hiddencheckBoxTemplate = { width: 30,hidden: true
    };
grid.jqGrid({
    colmodel: [
        { name: 'requEST_ID',width: 50 },width: 60 },{ name: 'CUSTOMER_ID' },width: 40 },template: hiddencheckBoxTemplate },{ name: 'WAYBILL_OFFICE' },cmTemplate: { width: 100,label: '' },... other option. No colNames are needed because of usage label
});

在这种方式中,您可以减少代码并使其更易于管理(易于维护).由于colmodel中的usage label属性,因此不应包含colNames选项.

以同样的方式,您也可以减少定义第二个网格的代码.

一个评论.代码if($.jgrid.getCellIndex(e.target)== 37){难以理解和维护.如果要在网格中包含其他列,或者如果您甚至更改某些选项的值(如rownumbers),则应更改常量37.你想要做的只是测试用户是否点击了“详细信息”列.我建议你更好地使用列名.例如

var colmodel = $(this).jqGrid('getGridParam','colmodel'),cm = colmodel[iCol]; // iCol is defined before as $.jgrid.getCellIndex(e.target)
if (cm && cm.name === 'details') {
    ....
}

最后一句话.您使用GridUnload,然后使用详细信息重新创建第二个网格.使用.trigger(‘reloadGrid’,[{page:1}])会更有效(见here).在开始时,您可以使用数据类型创建第二个网格:’local’.它将阻止从服务器加载数据.您可以将第二个网格放置在创建网格后直接隐藏的div中,并在需要时显示div.如果第二个网格需要填充信息,您可以使用setGridParam将数据类型更改为’json'(参见the answer),设置其他参数,如postData的requestId,然后调用.trigger(‘reloadGrid’,[{page:1}]) .这种方式将更有效地发挥作用.

大佬总结

以上是大佬教程为你收集整理的jquery – 如何在jqGrid中选择数据行全部内容,希望文章能够帮你解决jquery – 如何在jqGrid中选择数据行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。