2015-01-08 75 views
0

我在asp.net網格視圖中有這個奇怪的要求。是否可以同時顯示列標題和行標題,如下圖所示?在asp.net中創建行標題gridview

enter image description here

如果是我做的多了一個問題

1)我想根據失敗的數量地塊數量爲我們自動計算不良率在失敗%行在Excel中做。

幫助深表感謝,提前致謝。

回答

3

我想你有一個集合,我們稱它爲origCollection其中包含數據以某種方式。我通常做的是將origCollection轉換成另一個,我們稱之爲newCollection,它具有您想要的形式。您應該需要這個類來映射單列:

Class myRow { 
    public string title {get; set;} //Failure %, Failed Quantity, ... 
    public string test1{get; set;} 
    public string test2{get; set;} 
    public string test3{get; set;} 
    public string test4{get; set;} 
    public string test5{get; set;} 
} 

然後,數據綁定之前,您可以創建newCollection這樣:

//create newCollection 
var newCollection = new List<myRow>(); 

//for each row you wnt to put in newCollection: 
newCollection.Add(new myRow(){ 
    title = "Failure %", 
    test1 = // calculate value from origCollection, 
    test2 = // calculate value from origCollection, 
    test3 = // calculate value from origCollection, 
    test4 = // calculate value from origCollection, 
    test5 = // calculate value from origCollection 
}); 

您撰寫newCollectionorigCollection從你的數據結構深深依賴的方式,無論如何,你可以將所有的過程包裝在一個函數中,我們稱之爲transformCollection()。然後,數據綁定很簡單:

var newcoll = transformCollection(origCollection); 
this.myGrid.DataSource = newcoll; 
this.myGrid.Databind(); 

這是我平時做的方式,我希望這種幫助

+0

感謝@balanza。它確實有幫助,但是如果行數增加會導致問題出現在面向對象的特徵上,那麼解決方案的長度往往會增加。沒有網格視圖屬性或任何其他控件可以滿足我的要求嗎? –

+0

@ user2470766對於後處理單元格值,您始終可以使用'GridView.RowDataBound'事件。但是爲了處理數據表的結構,我只能建議使用一箇中間轉換集合,如上所述。 「如果行數增加會引起對象方向的特徵問題,那麼解決方案的長度會增長嗎?」 – balanza

+0

在上面的解決方案中,我們必須將每一行放入一個新的集合中。如果我的數據有數百行,那麼對於每一行數據,我們必須再次編寫newCollection.Add(new myRow()代碼的一部分。 –