資料來源:
http://www.blueshop.com.tw/board/fum20041006161839lrj/BRD2011031411333152E.html
事先(page_init)建立所有的欄位,
事後(page_load, button_click, .....)隱藏某幾個已存在的欄位
GridView密技#4---使用ITemplate介面,動態新增「GridView樣版列(Template Row/模版列)」,內含VB與C#語法
http://www.dotblogs.com.tw/mis2000lab/archive/2008/12/24/gridview_dynamic_add_template_1224.aspx
GridView密技#5---(修改/補強版)使用ITemplate介面,動態新增「GridView樣版列(Template Row/模版列)」
http://www.dotblogs.com.tw/mis2000lab/archive/2008/12/24/gridview_dynamic_add_template_1224.aspx
Q:自訂GridView欄位,為何每換頁一次,欄位就一直增加呢?
資料來源:
http://www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD20101117120721FD2.html
protected void Page_Init()
{
dt.clear(); // 加一行
dt = sqlDB.DbCreateDataTable(sql, "Grid1");
-------
我想可能是「GridView的 DataBinding時機有錯」
如果您寫在 Page_Load()事件裡面,
多寫一段判別式,說不定就改善了。
IF Not Page.IsPostBack Then
'----把 DBInit()程式寫在這裡
End IF
DBInit()就是您目前 Page_Init()這一區塊的程式碼。
關於 Page的生命週期,PostBack的觀念,Page_Load()事件何時被觸發?
您可以參考這 2篇文章,希望對您有幫助。
[FAQ]GridView的編輯、修改、刪除,為何都會重複執行兩次?
http://www.dotblogs.com.tw/mis2000lab/archive/2009/10/20/11157.aspx
自己動手寫 GridView的編輯/更新程式,但抓不到修改後的資料?(兼論DataBinding的時機)
http://www.dotblogs.com.tw/mis2000lab/archive/2009/11/09/11497.aspx
------
把addSource();從Page_Load移到Page_Init.
並且把中斷點放在Page_Init的addSource(),但發現一個問題.
當我按下送出的時候 此時畫面會PostBack 這個時候,Page_Init也是會被執行,且會再次觸發.
您試會嗎?如果不會,是我這裡有什麼東西沒設定到嗎?
後端程式如下:
protected void Page_Init(object sender, EventArgs e)
{
addSource();
}
protected void Page_Load(object sender, EventArgs e)
{
}
private void addSource()
{
ddlTest1.Items.Add(new ListItem("s1", "1"));
ddlTest1.Items.Add(new ListItem("s2", "2"));
ddlTest1.Items.Add(new ListItem("s3", "3"));
}
沒有留言:
張貼留言