2011-05-08 62 views
0

我一直在尋找一種方法來控制出現在GridView的特定列中的文本。編輯一個GridView列的代碼asp.net

例如,考慮一個包含兩張表Student和Class的數據庫。

  1. 我想將列添加到GridView這在數據庫打印出所有的學生,列會顯示學生的類名,該怎麼辦呢? (我可以正常打印的classid,因爲它是一個FK在學生表)

  2. 我想將列添加到GridView其打印所有類,列將統計每個班級的學生人數,怎麼能我這麼做?

+0

如果我理解正確,您的GridView當前將顯示數據庫中所有學生的列表。那是對的嗎?另外,你在做什麼來顯示你有的GridView?例如你是否自動生成列? – 2011-05-08 00:56:51

+1

您可以發佈您的代碼,以便我們能夠更好地幫助您。 – 2011-05-08 00:58:04

+0

太難理解你的問題,請重新提示。如果可能的話附圖;在mspaint中繪製它們或者其他東西... – deostroll 2011-05-08 01:28:50

回答

0

1 - 你可以做到這一點簡單地用內部聯接或存儲過程,讓您在您的查詢需要的所有數據旁邊的類名。不止一種方法

2 - 更多的是你想要什麼:

例如: 您可以將列添加到您的數據表(空柱),後來填充它通過使用Sum()聚合函數一個問題。

 DataTable result_dt = DAL_Helper.Return_DataTable(sqlSelect);//your original query 
     result_dt.Columns.Add("NumberOfStudent"); 
     result_dt.Columns["NumberOfStudent"].DataType = typeof(string); 
     result_dt.Columns["NumberOfStudent"].MaxLength = 255; 

     if (result_dt.Rows.Count > 0) 
     { 
      for (int i = 0; i < result_dt.Rows.Count; i++) 
      { 
       //Here u can fill your new empty column. 
      } 
     } 
     result_dt.AcceptChanges(); 

後返回您的自定義數據表(作爲數據源),您可以將其綁定到網格視圖。

另一種解決方案:添加一個空列到網格視圖和RowDataBound事件網格視圖,你可以通過一些循環填寫此欄,您可以使用LINQ,以幫助您獲得的總和。