2013-07-19 39 views
0

我正在使用JavaScript循環來創建一個由數字組成的表。該代碼目前創建的表很好,我已經添加了一些樣式。 我遇到的問題是找到一種方法來比較單元格列中的數據,以突出顯示該列中該組的最佳和最差執行者。我需要比較html表中的行數據

這裏是我使用的JavaScript函數。

function performanceMetricsLoad() { 
var records = storePerformanceMetricsData.getRecordsValues(); 
var groupTracker = null; 
var assetTracker = null; 
var htmlStr; 
htmlStr = "<table class='TableStyles'><thead class='HeaderStyles'><tr><th width='400'>Name</th><th width='110'>1 month Cumulative Performance to " 
      + records[0].DatetimeRecorded.format("F j, Y") + "</th><th width='110'>3 month Cumulative Performance to " 
      + records[0].DatetimeRecorded.format("F j, Y") + "</th><th width='110'>6 month Cumulative Performance to " 
      + records[0].DatetimeRecorded.format("F j, Y") + "</th><th width='110'>12 month Cumulative Performance to " 
      + records[0].DatetimeRecorded.format("F j, Y") + "</th></tr></thead><tbody>"; 

for (var i = 0; i < records.length; i++) { 

    if (groupTracker != records[i].ClassOption) { 
     htmlStr += "<tr>" + "<td class='GroupStyleCSS' colspan='5'>" 
     + records[i].Diversification + "</td></tr>"; 
     groupTracker = records[i].ClassOption; 
    } 

    if (groupTracker == records[i].ClassOption) { 
     htmlStr += "<tr>" + "<td class='RecordCssStyle'>" + records[i].AssetLongName 
     + "</td>"+ "<td class='RecDiv'>" + records[i].TotalReturn1m.toFixed(2) 
     + "</td>" + "<td class='RecDiv'>" + records[i].TotalReturn3m.toFixed(2) 
     + "</td>" + "<td class='RecDiv'>" + records[i].TotalReturn6m.toFixed(2) 
     + "</td>" + "<td class='RecDiv'>" + records[i].TotalReturn12m.toFixed(2) + "</tr>"; 
     assetTracker = records[i].AssetLongName; 
    } 
} 

htmlStr += "</tbody></table>"; 
createRow("", htmlStr); 
frmMetrics.doLayout(); 

}

function createRow(cls, text) { 
frmMetrics.add(new Ext.BoxComponent({ 
    cls: cls, 
    html: "<div>" + text + "</div>" 
})); 

}

的信息被輸出到EXT FormPanel中。

這個問題我已經是現在我已經把它輸出,我需要找到一種方法來突出列內的最佳和最差表現,該集團內部的信息...

表輸出5個沿着列頂端,最多10個基金組合左側,按其「多元化」分組,這取決於使用SQL查詢請求的信息。

有沒有人有一種方式的想法,我可以用這段代碼的當前狀態做到這一點?我想使用另一個外部函數,可能一些if語句選擇不同的CSS類...任何幫助將不勝感激。 非常感謝。

對不起缺乏截圖,我想包括一些,但顯然我需要之前,我可以信譽分數的10,或沿着這些線路的東西...

+1

是不是編程101找到最大和最小的數字?那麼您可以創建一個最大和最小的變量,並在創建每一行時,將該值與最大和最小值進行比較。如果它大於最大變化量最大變量和最小變量相同。 – user1

+1

絕對**不要**使用DOM進行數據存儲。這真的很慢。在您添加行並添加額外的CSS類到需要的類時,使用JavaScript變量在JavaScript中進行所有比較。 – Corion

+0

如果你已經在使用Ext,我認爲你對Ext「看起來至少有點滿意」。那麼,爲什麼不拋棄原始表並使用Ext.grid.Panel呢?您可以使用代表性能指標數據結構的商店。然後,您可以使用Ext框架功能(例如在列渲染器功能中)來進行格式設置。 –

回答

0

這兩行添加到頂部您功能

var largest; 
var smallest; 

然後在你的循環,補充:

if(value > largest){ 
    largest = value; 
} 
if(value < smallest){ 
    smallest = value; 
} 

如果你想樣式添加到這些值的單元格的行添加到存儲這些val的指數(以相同的方式更新)並設置或,並選擇與CSS的ID。