iT邦幫忙

0

GridView的 PreRender事件與範例-- 成績低於60分出紅字 & 分數加總(累加)

之前有一個範例,相同的結果可以用兩種作法來實踐

我覺得這種教學方法很不錯,「同一個題目,有多種解法」
學生反應比較熱烈,也可以挑自己慣用的、自己(目前程度)學得會的方式來處理

所以沿用舊的範例,改用新的作法。順便也能比對一下優缺點。
有位讀者想要知道 控制項的 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>


尚未有邦友留言

立即登入留言