2010-10-27 69 views
5

我們有一個數據類型爲json的網格。訪問jqGrid自定義格式化程序中的行數據

我們有以下的自定義格式:

function opsFormatter (cellvalue, options, rowObject){ 
    '<a title=MA href=javascript:showDialog(' + rowObject[5] + ')>MA<a>' + '&nbsp;&nbsp;'; 
} 

取而代之的rowObject[5]有沒有對象的符號,我們可以指定實際的列名(「帳戶」)?即:rowObject.account

這是格網定義:

$("#grid-pos").jqGrid({ 
    colNames:['Product', 'Type','Expiry', 'Put Call', 'Strike', 'Account','Long','Short', 'Open Qty', 'LTD', 'Operations'], 
    colModel :[ 
       {name:'product', index:'product', width:75, sortable:false}, 
       {name:'type', index:'type', width:50, align:'right', sortable:false}, 
       {name:'expiry', index:'expiry', width:60, align:'right',stype:'select', searchoptions:{dataUrl:'expiry_select.htm'}, sortable:false}, 
       {name:'putCall', index:'putCall', width:65, sortable:false}, 
       {name:'strike', index:'strike', sorttype: 'float', width:70, sortable:false}, 
       {name:'account', index:'account', width:70, sortable:false}, 
       {name:'long', index:'long', width:55, align:'right', sortable:false}, 
       {name:'short', index:'short', width:55, align:'right', sortable:false}, 
       {name: 'openQty', index:'openQty', width:80, align:'center', formatter:closeoutFormatter, sortable:false}, 
       {name:'LTD', index:'LTD', width:65, align:'right', sortable:false}, 
       {index:'operations', width:105, title:false, align: 'center', formatter:opsFormatter, sortable:false} 
       ], 
       pager: '#div-pos-pager', 
       caption: 'Positions' 
}); 

??

回答

11

在我看來,絕對正確的行爲。參數rowObject的值爲對象具有與colModel的'name'屬性中定義的名稱相同的屬性。酒店account是從那裏。我想,誤解來自custom formatter的文檔的以下部分:

rowObject - 是一個行數據表示在從數據類型 選項確定的格式 。 ......如果我們有數據類型: JSON/jsonstring - 的rowObject是 陣列,根據從jsonReader

規則

大概字陣列如下誤解提供。在JavaScript中,rowObject.account可以用作rowObject["account"],但不能使用rowObject[5]來訪問rowObjectaccount屬性。在文件中只是不清楚書面的句子。如果您是母語爲英語的人,您可以重新編寫文本,以免誤解。文檔是wiki,任何人都可以更改任何文本。

+1

我想說的是'rowObject [5]'工作,但'rowObject [「account」]'和'rowObject.account'不起作用。我想要的是能夠使用最後兩個變種.. – 2010-10-27 22:40:50

+0

是因爲我們使用'loadOnce:true'?也許這會導致一個問題,因爲這個設置會導致grid數據類型爲'local' ..文檔提到了一些關於對象表示法的東西,只能用於JSON數據類型。 – 2010-10-27 22:41:34

+0

@Marcus:在我的示例中,我可以使用像rowObject這樣的表示法。 account'。你應該發佈測試JSON數據和更多完整的'jqGrid'代碼,這些代碼可以用來重現你的問題。 – Oleg 2010-10-27 23:03:19

相關問題