2012-02-24 46 views
0

EDITED JS:返回false數據值loadComplete的jqGrid

$.extend($.jgrid.defaults, 
    { 
     mtype: "POST", 
     viewRecords: true, 
     rowNum: 10, 
     sortable: false, 
     shrinkToFit: true, 
     rowList: [10,20,50], 
     xmlReader: { 
      root: "tasks", 
      row: "task", 
      repeatitems: false 
     } 
    }); 

<script> 
     var subjects = <?php echo $Subject ?>; 
     var users = <?php echo $trimmed ?>; 
     var lastsel3; 
     $(document).ready(function() { 
     $grid = $("#assign"), 
     initDateEdit = function (elem) { 
      setTimeout(function() { 
       $(elem).datepicker({ 
        dateFormat: 'yy-mm-dd', 
        showButtonPanel: true 
       }); 
      }, 100); 
      }, 
     initDateSearch = function (elem) { 
      setTimeout(function() { 
       $(elem).datepicker({ 
        dateFormat: 'yy-mm-dd', 
        showButtonPanel: true 
       }); 
      }, 100); 
      }; 
      $grid.jqGrid({ 
     url: 'assignedTasks.php', 
     colNames: ["track","Assigned To","JobID","Subject","Notes","Details","Due Date","Submit Date", "AssignUser"], 
     colModel: [ 
      { 
       name: "track", 
       index:"TrackID", 
       key: true, 
       align: "center", 
       xmlmap:"TrackID", 
       hidden: true 
      }, 
      { 
       name:"User", 
       index:"UserID", 
       align: "center", 
       editable: true, 
       xmlmap:"UserID", 
       edittype: 'select', 
       editoptions: {value: users}, 
       editrules: {required: true}, 
       sortable: false 
      }, 
      { 
       name: "JobID", 
       index:"TaskID", 
       xmlmap:"TaskID", 
       editable: true, 
       align:"center", 
       editrules: {required: true}, 
       sortable: false, 
      }, 
      { 
       name: "Subject", 
       index:"TaskSubject", 
       align: "center", 
       xmlmap:"TaskSubject", 
       editable: true, 
       edittype: 'select', 
       editoptions: {value: subjects}, 
       editrules: {required: true}, 
       sortable: false 
      }, 
      { 
       name:"Notes", 
       index:"Notes", 
       align: "center", 
       height: 20, 
       xmlmap:"Notes", 
       editable: true, 
       edittype: 'textarea', 
       sortable: false 
      }, 
      { 
       name:"Details", 
       index:"Details", 
       align: "center", 
       xmlmap: "Details", 
       editable: false, 
       sortable: false 
      }, 
      { 
       name:"DueDate", 
       index:"DueDate", 
       align: "center", 
       editable: true, 
       xmlmap:"DueDate", 
       editrules:{required: true}, 
       editoptions: {dataInit: initDateEdit}, 
       formatter: 'date', 
       formatoptions: {newformat: 'd-M-Y'}, 
       datefmt: 'd-M-Y', 
       sortable: false 
      }, 
      { 
       name:"Submitted", 
       index:"Submitted", 
       align: "center", 
       xmlmap: "Submitted", 
       editable: false, 
       sortable: false 
      }, 
      { 
       name:"AssignUser", 
       index:"AssignUser", 
       align: "center", 
       xmlmap: "AssignUser", 
       hidden:true, 
       editable: false 
      } 
     ], 
     loadComplete : function() 
         { 
          var rows = $grid.jqGrid('getDataIDs'); 
          alert(rows); 
          for (ID in rows) 
          { 
           var data = $grid.getCell(ID,'Details'); 
           alert(data); 
          } 
         }, 
     gridview: true, 
     ondblClickRow: function(track){ 
         if(track && track!==lastsel3) 
          { 
           $('#assign').jqGrid('restoreRow',lastsel3); 
           $('#assign').jqGrid('viewGridRow',track); 
           lastsel3=track; 
          } 
         else 
          { 
           $("#assign").jqGrid('viewGridRow',track); 
          } 
         }, 

     editurl: 'addTasks.php', 
     pager: $('#assignNav'), 
     caption: "Assign Tasks" 
    }).navGrid('#assignNav',{edit:true,add:true,del:true},{},{},{},{multipleSearch: false, multipleGroup: false}); 
    $(window).bind('resize', function() { 
     $("#assign").setGridWidth($(window).width()-"185"); 
     $("#assign").setGridHeight($(window).height()-"310"); 
    }).trigger('resize'); 
     }); 
    setInterval(
     function(){ 
      $('#assign').setGridParam({datatype: 'xml'}).trigger('reloadGrid',[{current:true}]); 
     },60000); 

    </script> 

我使用這個事件來獲取細胞內的值。當我運行代碼時,即使它們有一個賦值的值,然後爲所有對應的值返回正確的值,警告仍會爲第一對單元格返回「false」。我該如何解決? 我試過gridComplete事件,結果是一樣的。

XML:

<?xml version="1.0" encoding="UTF-8" ?> 
<tasks> 
    <task> 
     <TaskID>job0001</TaskID> 
     <UserID>admin</UserID> 
     <AssignID></AssignID> 
     <AssignDate></AssignDate> 
     <DueDate></DueDate> 
     <AssignUser>1</AssignUser> 
     <TaskSubject></TaskSubject> 
     <Notes>Urgent!</Notes> 
     <TrackID>1</TrackID> 
     <Details>Not Started</Details> 
     <Submitted></Submitted> 
     <folderLink></folderLink> 
    </task> 
    <task> 
     <TaskID>job00004</TaskID> 
     <UserID>admin</UserID> 
     <AssignID></AssignID> 
     <AssignDate>2012-02-07</AssignDate> 
     <DueDate>2012-02-16</DueDate> 
     <AssignUser>1</AssignUser> 
     <TaskSubject></TaskSubject> 
     <Notes>ajsbaljb</Notes> 
     <TrackID>7</TrackID> 
     <Details>Not Started</Details> 
     <Submitted></Submitted> 
     <folderLink></folderLink> 
    </task> 
</tasks> 

編輯2:如果我這樣做

loadComplete : function() 
         { 

          var data = $grid.getCol('Details'); 
          alert(data); 
         }, 

它正確返回的一切!

+0

您應該包含完整的JavaScript代碼,它使用jqGrid幷包含testdata(JSON或XML),以便可以複製您描述的問題。 – Oleg 2012-02-24 07:59:10

+0

@ Oleg更新了這篇文章,我真正想要做的是根據單元格中的內容更改行顏色,但是由於此錯誤,我無法通過這一點。 – stackErr 2012-02-24 08:55:21

回答

0
loadComplete : function() 
        { 
         var data = $grid.getCol('Details', true); 
        }, 

這將返回具有rowIds的Details Cell中的內容。這解決了我卡住的地方,但我仍然想知道爲什麼其他函數返回false。