English 中文(简体)
jqGrid Customs Formatter foruser 数据
原标题:jqGrid custom formatter for userData

Is there any workaround to add custom formatter to userData in jqGrid? i found this question and it helps me a lot. below is the code that i use to populate jqGrid. please note that i populate a custom userData object in the jsonReader and set it to the grid in loadComplete i need to add separate formatter to total columns. please let me know if there is a way. Thanks in advance.

var userDataTotals;
jq("#testGrid").jqGrid({
    url: local ,
    datatype:  local ,
    mtype:  GET ,
    colNames:[
               rowId , unitId ,
               <fmt:message key="report.col1"/> ,
               <fmt:message key="report.col2"/> ,
    ],
    colModel :[ 
        {name: rowId , index: rowId ,hidden: true,sortable: true,key:true}, 
        {name: unitId , index: unitId ,hidden: true,sortable: true,key:true}, 
        {name: outboundReadyDate , index: outboundReadyDate , width:80,align:"center",sorttype: integer ,formatter:dateOnlyFmatter,datefmt: Y M d },
        {name: outboundDate , index: outboundDate , width:80,align:"center",sorttype: integer ,formatter:dateOnlyFmatter,datefmt: Y M d },
    ],
    // this will enable the footer row to display totals
    footerrow : true,
    //userDataOnFooter : true,
    altRows : true,
    //to hide pager buttons
    pgbuttons:false,
    recordtext:  ,
    pgtext:  ,
    gridview: true,
    height:270,
    loadonce: true,
    sortname:  rowId ,
    sortorder:  asc ,
    viewrecords: true,
    rowNum:30000,
    loadComplete: function() {
        // This will increase the column header height ( to show two rows in the header)
        jq(".ui-jqgrid-sortable").css( white-space ,  normal );
        jq(".ui-jqgrid-sortable").css( height ,  auto );
        //Set the total values after load complete,otherwise
        // custom formatter will format the total value as well.

        jq("#mainReportGrid").jqGrid("footerData","set",userDataTotals,false);

        //check the data type to avoid this code to  execute when the pageload
        var checkDatatype = myGrid.jqGrid("getGridParam","datatype");
        if(checkDatatype == json  && myGrid.getGridParam( records ) == 0){
            // when no records are displaying alert it to the user
            alert(noRecordsMsg);
        }

    },

    jsonReader : {
        root: "dtos",
        records: "records",
        repeatitems: false,
        cell: "cell",
        id: "rowId",
        userdata :function(obj) {
            userDataTotals = {"outboundReadyDate":obj.totalOutBounded,
                "outboundDate":obj.totalOutBoundReady};
        }

    },


    //This will format the date of the grid (without displaying time)
    function dateOnlyFmatter (cellvalue, options, rowObject){
        var opts = options.colModel.formatoptions;
        if(cellvalue==null || cellvalue== undefined ){
            return  - ;
        }else{
            if(opts != undefined && rowObject.projectTypeName == IOD ){
                return  N/A ;   
            }
            var now = new Date(cellvalue);
            return now.format( M j, Y );
        }
    }

i 使用习惯dateFormat.js,以格式发布。

Response子反应是:

{
    "dtos": [
        {
            "unitId": 1068,
            "outboundDate": null,
            "outboundReadyDate": 1317619303000,
            "rowId": 13,
        },
        {
            "unitId": 1105,
            "outboundDate": 1317616970000,
            "outboundReadyDate": 1317617213000,
            "rowId": 14,
        }
    ],
    "totalOutBounded": 0,
    "totalOutBoundReady": 4,
    "rowTotal": 15,
    "returnCode": 0,
    "msg": ""
}

i used sortType as integer because from the server i am passing a java Date object directly to the grid. in order to sort it i need to set sortType to integer

Basic problem what i am having was in IE8 i cannot see the userData total values. but in other browsers i can see it. i need to format userData total values as hyperlinks .

without userData formatting i can see the totals in IE8. so that i am thinking that without using the column formatter adding a custom formatter to the total values (userData).

最佳回答

You have many small syntax errors:

可查阅rel=“nofollow noretinger”>here 修改你的代码。

问题回答

暂无回答




相关问题
getGridParam is not a function

The HTML: <a href="javascript:void(0)" id="m1">Get Selected id s</a> The Function: jQuery("#m1").click( function() { var s; s = jQuery("#list4").getGridParam( selarrrow )...

selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

jQuery cycle page with links

I am using the cycle plugin with pager functionality like this : $j( #homebox ) .cycle({ fx: fade , speed: fast , timeout: 9000, pager: #home-thumbs , ...

jquery ui dialog opens only once

I have a button that opens a dialog when clicked. The dialog displays a div that was hidden After I close the dialog by clicking the X icon, the dialog can t be opened again.

jConfirm with this existing code

I need help to use jConfirm with this existing code (php & Jquery & jAlert). function logout() { if (confirm("Do you really want to logout?")) window.location.href = "logout.php"; } ...

Wrap text after particular symbol with jQuery

What I m trying to do, is wrap text into div inside ll tag. It wouldn t be a problem, but I need to wrap text that appears particularly after "-" (minus) including "minus" itself. This is my html: &...

热门标签