Jquery 获取jqgrid列和值

Jquery 获取jqgrid列和值,jquery,coldfusion,jqgrid,Jquery,Coldfusion,Jqgrid,我一直在玩jqgrid,有以下问题 为了获得ID列的值,我们使用getDataIDs()。是否有一种方法可以获取其他列的值(我正在使用自定义格式设置程序创建列链接,并将删除链接添加到“loadComplete”上的每一行。) 我可以在循环列和值时使用条件语句吗。我的意思是,我想循环下面的user_name列,根据它的值,我想为某些值显示delete,而不想为某些值显示delete 下面是代码 $(document).ready(function() { $("#list").jq

我一直在玩jqgrid,有以下问题

  • 为了获得ID列的值,我们使用getDataIDs()。是否有一种方法可以获取其他列的值(我正在使用自定义格式设置程序创建列链接,并将删除链接添加到“loadComplete”上的每一行。)
  • 我可以在循环列和值时使用条件语句吗。我的意思是,我想循环下面的user_name列,根据它的值,我想为某些值显示delete,而不想为某些值显示delete
下面是代码

$(document).ready(function() { 


   $("#list").jqGrid(
   {
    url:'index.cfc?method=getData', //CFC that will return the users
    datatype: 'json', //We specify that the datatype we will be using will be JSON
    mtype: 'POST',
    colNames:['User ID', 'User Name'], //Column Names
    colModel :[     
     {name:'user_id',index:'user_id', sorttype:"string", formatter: 'showlink', formatoptions:{baseLinkUrl:'#'}},
     {name:'user_name',index:'user_name', sorttype:"string"},
     {name:'act',index:'act',sortable:false}
    ],
    pager: $('#pager'), //The div we have specified, tells jqGrid where to put the pager
    toppager: true,
    height: 'auto',
    width: 1270,
    rowNum:25, //Number of records we want to show per page
    rowList:[25,50,100], //Row List, to allow user to select how many rows they want to see per page
    sortorder: "asc", //Default sort order
    sortname: "user_id", //Default sort column
    loadComplete: function() {
     var myGrid = $("#list");
     var ids = myGrid.getDataIDs();
     for (var i = 0, idCount = ids.length; i < idCount; i++) {
      $("#"+ids[i]+" a",myGrid[0]).click(function(e) {
       var hash=e.currentTarget.hash;// string like "#?id=0"
       if (hash.substring(0,5) === '#?id=') {
        var id = hash.substring(5,hash.length);
        var text = this.textContent;
        alert("clicked the row with id='"+id+"'. Link contain '"+text+"'");
        location.href="http://en.wikipedia.org/wiki/"+text;

       }
       e.preventDefault();

      });
     }  

     for(var i=0;i<ids.length;i++){ 
      var cl = ids[i]; 

       vdelete = "<a href='#' onclick=\"testfn('"+cl+"')\">Delete</a></ids>";  
       jQuery("#list").setRowData(ids[i],{act:vdelete}) 
     }     
    },
    caption: '', //Grid Name
    jsonReader: {
    root: "ROWS", //our data
    page: "PAGE", //current page
    total: "TOTAL", //total pages
    records:"RECORDS", //total records
    cell: "",
    id: "0"

    }
   })


   $("#list").jqGrid('navGrid','#pager',
   {
    edit:false,
    add:false,
    del:false, 
    search:true,
    refresh: true,
    searchtext:"Search",
    refreshtext: "Refresh",
    'cloneToTop':true
   }); 


  }); 

是的,这是可能的。您所需要使用的只是自定义格式化程序中的第三个参数。第三个参数是row object,因此它始终具有整行的值,您可以根据这些值在格式化程序中显示任何内容

                var rows= jQuery("#list").jqGrid('getRowData');
                alert(rows.length);
                for(var i=0;i<rows.length;i++){
                      var row=rows[i];
                     alert(row['user_id']);//get the user_id column value
                  }
colModel :[     
 {name:'user_id',index:'user_id', sorttype:"string", formatter: 'showlink', formatoptions:{baseLinkUrl:'#'}},
 {name:'user_name',index:'user_name', sorttype:"string"},
 {name:'act',index:'act',sortable:false},
 {name:'secretCol', hidden:true}
],