2012-12-20 48 views
0

我根據用戶的選擇創建本地對象集合。動態數組應該被加載到jqGrid中。在動態創建數組後,我嘗試重新加載,但沒有任何反應。下面是代碼 -本地對象數組中的JQGrid數據

$(document).ready(function() { 

     var arrobj = [];   

     var JSONString = []; //[{"DOId":"0","DONo":"Please select","DealerCode":"0","Week":"0","Item":"0","Qty":"11","Date":"11"}] 

     $("#<%=btnAdd.ClientID%>").click(function() { 
      //Get values 
      //Date 
      var dlDt = $("#<%=tbRchngDt.ClientID%>").val(); 
      //Qty 
      var dlQty = $("#<%=tbQty.ClientID%>").val(); 
      //item 
      var dlItem = $("#<%=ddlItem.ClientID%>").val(); 
      //DO No 
      var dlDOId = $("#<%=ddlDO.ClientID%>").val(); 
      var dlDO = $("#<%=ddlDO.ClientID%> option:selected").text(); 
      //Week 
      var dlWeek = $("#<%=ddlWeek.ClientID%>").val(); 
      //Dealer 
      var dlDealer = $("#<%=ddlDealer.ClientID%>").val(); 

      DistributionDtl = new Object(); 
      DistributionDtl.DOId = dlDOId; 
      DistributionDtl.DONo = dlDO; 
      DistributionDtl.DealerCode = dlDealer; 
      DistributionDtl.Week = dlWeek; 
      DistributionDtl.Item = dlItem; 
      DistributionDtl.Qty = dlQty; 
      DistributionDtl.Date = dlDt; 


      //alert(DistributionDtl); 
      arrobj.push(DistributionDtl); 
      JSONString = JSON.stringify(arrobj); 
      //alert(JSONString); 
      $("#list").jqGrid('setGridParam', 
      { datatype: "local", 
       data: JSONString 
      }).trigger("reloadGrid"); 

     }); 
     jQuery("#list").jqGrid({ data: JSONString, 
      datatype: "local", 
      height: 150, 
      width: 600, 
      rowNum: 10, 
      rowList: [10, 20, 30], 
      colNames: ['DOID', 'Item', 'Qty', 'Date'], 
      colModel: [{ name: 'DOId', index: 'DOId', width: 60, sorttype: "int" }, 
           { name: 'Item', index: 'Item', width: 120 }, 
           { name: 'Qty', index: 'Qty', width: 80 }, 
            { name: 'Date', index: 'Date', width: 120}], 
      pager: "#pager", 
      viewrecords: true, 
      caption: "Contacts" 
     }); 

    }); 
+0

我小挑剔,但它可能會使值得嘗試的是,可能沒有必要在您的觸發器行中將setGridParam設置爲在構建網格時已設置的值。所以你可以$(「#list」)。jqGrid()。trigger(「reloadGrid」); – Mark

+0

thnx,但仍然不能正常工作 – Dibs

+0

您是否看到在Firebug/Chrome中請求新數據的網格?你可以用一些靜態數據設置一個完全不同的文本數組來測試你的網格是否根據變化拉動任何數據? – Mark

回答

0

您應該添加本地用以下方法來jqGrid的數據:

  • addJSONData - 以數據爲JSON
  • addRowData - 由行,然後觸發添加一行重新加載網格重新計算分頁 - 數據應該是一個javascript對象

可以找到文檔here編輯根據文檔,你可以直接在「data」參數中設置本地數據,但它應該是一個數組而不是json字符串,並且你的問題中沒有JSONString的內容,所以問題可能來自於。

+0

hanks。 addRowData正在工作。我正在做的是jQuery(「#list」)。addRowData(DistributionDtl.DOId,DistributionDtl); – Dibs

+0

存在問題。以這種方式添加數據後,當我選擇一行它選擇第一行,如果我嘗試刪除Oleg顯示[記錄] demo-and-jqgrid-4-4-1/12296186#12296186)所有行都被刪除 – Dibs

+0

對不起,現在工作正常。不知何故Rowid對於所有行都是相同的。這就是爲什麼我遇到了這個問題。現在我已將addrowdata更改爲jQuery(「#list」)。addRowData(slNo,DistributionDtl,「last」);它工作正常。 – Dibs