2014-03-19 42 views
0

我有一個從服務返回的對象數組。我將這個數組提供給data哈希值爲jqGrid,並將其數據類型設置爲local。我有一個名爲Pricing的屬性,其值爲具有屬性CurrencyPrice的對象。jqGrid - 在插入之前修改單元格數據

現在我需要連接這兩個屬性並返回結果。我知道我可以使用jsonmap訪問這個嵌套結構,並且stackoverflow上的一些舊線程表明jsonmap散列也可以是一個函數。但是,根據文檔(jqGrid ColModel docs),jsonmap只接受一個字符串,並且當我嘗試將其分配給函數時,我的輸出也僅呈現[object object]。可能是舊的方法不再工作了。

{ 
    name: 'Pricing', jsonmap: function (item) { 
     return (item.Price + ' ' + item.Currency).toString(); 
    }, index: 'Pricing', width: 90, sorttype: "int" 
} 

的樣本數據:

model = [ 
    { 
     Id: 2, 
     PropertyCode: 'Ref 306', 
     Pricing: { 
      Currency: 'AUD', 
      Price: '$500000' 
     } 
    } 
]; 

我的問題是,有沒有什麼辦法之前,我傳遞價值的jqGrid做這個計算?我知道我可以在整個模型之外進行這種計算,然後通過它。

+0

您能否包含輸入數據的示例?你寫了關於「插入」的數據。你是指在編輯網格時初始填充數據或插入數據? – Oleg

+0

@Oleg謝謝你的時間。我的意思是數據的初始填充。我只是添加了一個示例對象。 – Sparda

回答

0

datatype: "local"的情況下將不使用屬性jsonmap。如果您使用datatype: "local"data參數,則可以直接爲jqGrid提供數據項數據。做一個循環,用jqGrid所需的數據填充新的空數組並不是一個真正的問題。

如果你仍然想使用你的原始數據作爲jqGrid的輸入,你可以使用datatype: "jsonstring"這非常接近datatype: "local"The demo顯示如何使用它。演示使用以下代碼:

var mydata = [ 
     { 
      Id: 2, 
      PropertyCode: 'Ref 306', 
      Pricing: { 
       Currency: 'AUD', 
       Price: '$500000' 
      } 
     } 
    ]; 

$("#list").jqGrid({ 
    datatype: "jsonstring", 
    datastr: mydata, 
    jsonReader: { 
     id: "Id", 
     root: function (obj) { return obj; }, 
     repeatitems: false 
    }, 
    colModel: [ 
     { name: "PropertyCode", width: 110 }, 
     { name: "Pricing", width: 90, 
      jsonmap: function (item) { 
       return (item.Pricing.Price + ' ' + item.Pricing.Currency).toString(); 
      }} 
    ], 
    rowNum: 10000, 
    gridview: true, 
    rownumbers: true, 
    autoencode: true, 
    height: "auto" 
}); 
+0

真棒,真的很感謝你的幫助。 – Sparda

+0

@Sparda:不客氣! – Oleg

相關問題