之前有一個範例,相同的結果可以用兩種作法來實踐
我覺得這種教學方法很不錯,「同一個題目,有多種解法」
學生反應比較熱烈,也可以挑自己慣用的、自己(目前程度)學得會的方式來處理
所以沿用舊的範例,改用新的作法。順便也能比對一下優缺點。
有位讀者想要知道 控制項的 PreRender事件?
為什麼上網找「GridView合併欄位、合併相同記錄」都是在 GridView的 PreRender事件完成呢?
我們先做幾個範例,然後再來看看MSDN網站的說明
先「做」再「學」,希望讓您比較好理解。
第一,所有學生的數學總分(加總、累加)
當然,直接用SQL指令做出來不就得了。這也是一種作法,直接在「資料來源」中處理。
我們也可以在「畫面」上處理。
第二,數學成績,不及格者,出現紅字!
protected void GridView1_PreRender(object sender, EventArgs e)
{
// 在控制項呈現到畫面「之前」,做最後的處理
foreach (GridViewRow GV_Row in GridView1.Rows)
{
if (Convert.ToInt32(GV_Row.Cells[5].Text) < 60)
GV_Row.Cells[5].ForeColor = System.Drawing.Color.Red;
}
}
完成後,我們來看 MSDN網站的說明 --
控制項的 PreRender事件
...... 在 Control 物件載入之後 但在呈現之前發生。
做過幾個範例以後,對於原廠的說明,會不會比較「有感」?
如果改用 GridView的「RowDataBound」事件來作,又有什麼變化???
(未完)
完整範例與說明,可以參考--
GridView的 PreRender事件與範例-- [Case Study]成績低於60分就出現紅字 & 分數加總(累加)
< http://www.dotblogs.com.tw/mis2000lab/archive/2015/07/23/gridview-prerender-rowdatabound-20150723.aspx>