我有一個XML
數據源像下面,如何從一個單元格的自定義格式訪問其他行數據的jqGrid中
<root>
<item priceOri = "100" discount = "10"></item>
<item priceOri = "200" discount = "110"></item>
.
.
.
</root>
而且我使用的jqGrid填充這些數據表。代碼如下所示。
datatype : 'xml',
colModel: [
...
{name:'priceOri', index:'priceOri', width:60,xmlmap : "[priceOri]", align:"center"},
{name:'discount', index:'discount', width:60,xmlmap : "[discount]", align:"center"},
{name:'price', index:'price', width:60,xmlmap : "[price]", align:"center", editable: true, formatter:discountFmatter},
...
]
xmlReader: {
root: "root",
row: "item",
repeatitems: false
},
格式化程序如下所示。
function discountFmatter (cellvalue, options, rowObject)
{
var price;
// do calculation based on other cell values in the same column
//price = priceOri - discount;
var new_format_value = price;
return new_format_value
}
如上代碼我需要訪問的item
標籤來計算price
部分其他值。所以基本上我想訪問同一行中的其他單元格值。我怎樣才能做到這一點。
我用下面的代碼片段,但他們造成的undefined
rowObject[0] // undefined
rowObject.priceOri //undefined
誰能告訴我的步驟來實現這一目標。
更新:我有jqGrid的版本4.4.0託尼Tomov的。由於我正在開發一個已開發的應用程序,因此我無法更改或更新該庫版本。所以我必須使用相同的JqGrid版本4.4.0。
好像Oleg的rowObject instanceof Element ? $(rowObject).attr("priceOri") : rowObject.priceOri
正在爲這一要求。
更新2:(因爲rowObject.rewards
在下面的情況下不會工作)
新的XML具有低於改變格式,
<項priceOri = 「100」 折扣= 「10」 獎勵= 「20」> < /項目>
因此新格式將像,
function discountFmatter (cellvalue, options, rowObject)
{
var price;
// do calculation based on other cell values in the same column
//price = priceOri - discount - rewards;
var new_format_value = price;
return new_format_value
}
請注意,我不顯示VAL在jQgrid表中,輸入rewards
。那麼我怎麼能做到這一點。
奧列格的回答是:In case of usage old jqGrid you will have to add new column rewards. You can use hidden: true property in the column. Free jqGrid allow you to use additionalProperties
這是一個驚人的答案@Oleg。但是我擁有Tony Tomov的JQgrid版本4.4.0。並且它不包含'options'參數的'rowData'屬性。但它有'getRowData()'方法。但不能像你提到的那樣使用它。所以問題仍然存在。 – prime
而'$(rowObject).attr(「priceOri」)'只能在第一次使用。如上所述,篩選後它將被評估爲'undefined'。 – prime
@prime:我不建議你使用2012年中發佈的復古版本4.4.0。如果仍然無法更新,那麼你可以使用'rowObject instanceof Element? $(rowObject).attr(「priceOri」):rowObject.priceOri' – Oleg