0
我在asp.net網格視圖中有這個奇怪的要求。是否可以同時顯示列標題和行標題,如下圖所示?在asp.net中創建行標題gridview
如果是我做的多了一個問題
1)我想根據失敗的數量和地塊數量爲我們自動計算不良率在失敗%行在Excel中做。
幫助深表感謝,提前致謝。
我在asp.net網格視圖中有這個奇怪的要求。是否可以同時顯示列標題和行標題,如下圖所示?在asp.net中創建行標題gridview
如果是我做的多了一個問題
1)我想根據失敗的數量和地塊數量爲我們自動計算不良率在失敗%行在Excel中做。
幫助深表感謝,提前致謝。
我想你有一個集合,我們稱它爲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
});
您撰寫newCollection
從origCollection
從你的數據結構深深依賴的方式,無論如何,你可以將所有的過程包裝在一個函數中,我們稱之爲transformCollection()
。然後,數據綁定很簡單:
var newcoll = transformCollection(origCollection);
this.myGrid.DataSource = newcoll;
this.myGrid.Databind();
這是我平時做的方式,我希望這種幫助
感謝@balanza。它確實有幫助,但是如果行數增加會導致問題出現在面向對象的特徵上,那麼解決方案的長度往往會增加。沒有網格視圖屬性或任何其他控件可以滿足我的要求嗎? –
@ user2470766對於後處理單元格值,您始終可以使用'GridView.RowDataBound'事件。但是爲了處理數據表的結構,我只能建議使用一箇中間轉換集合,如上所述。 「如果行數增加會引起對象方向的特徵問題,那麼解決方案的長度會增長嗎?」 – balanza
在上面的解決方案中,我們必須將每一行放入一個新的集合中。如果我的數據有數百行,那麼對於每一行數據,我們必須再次編寫newCollection.Add(new myRow()代碼的一部分。 –