2010-12-17 123 views
0

我綁定gridView到List<model>。我可以將它導出到excel文件,但我無法刪除特定的列。任何想法如何做?我試過gridView.Columns.RemoveAt(myIndex),但沒有工作,並拋出一個空的異常,我假設這是因爲gridView沒有綁定到dataTable。使用GridView刪除列導出到Excel

var models = new ModelService().List(startDate, DateTime.Now); 
var gridView = new GridView { DataSource = models };      

gridView.DataBind(); 

回答

1

轉換爲數據集或數據表

foreach (GridViewRow dr in gridView.Rows) 
{ 
    //Create dataset and insert into cell value. 
    dr.Cells[0].Text; 
    dr.Cells[1].Text; 
} 

卸下所需的行

for (int j = ds.Tables[0].Rows.Count - 1; j >= 0; j--) 
{ 
    if (ds.Tables[0].Rows[j][column].ToString() == criteria) 
    { 
    ds.Tables[0].Rows.RemoveAt(j); 
    } 
} 

然後導出數據集

+0

+1我會試試這個方法。 – odez213 2010-12-17 14:52:32

+0

感謝它的工作,雖然我希望有一個比做數據傳輸對象更好的方法。 – odez213 2010-12-18 08:57:44

+0

很高興爲你效勞 – 5N0U7 2010-12-21 21:24:01

0

兩個建議:

  1. 使用LINQ從您的ModelService中只選擇您想要的列,以便您不希望的列永遠不會進入網格。
  2. 在GridView中定義您的列,並隱藏導出到Excel時不需要的列。無論如何,我會這樣做,因爲我想更多地控制列的格式。
+0

模型對象非常靜態。模型對象可能有地址屬性,我不希望它顯示在gridView中。我如何定義gridView中的列? – odez213 2010-12-17 14:52:05