[習題].FindControl()的習題 -- GridView 跨網頁 修改(編輯)
有一個 GridView,按下按鈕之後,會去另一個網頁進行修改。
GridView先轉成樣板,然後把 Label改成 TextBox並且重新「設定DataBinding」
詳見書本上集 Ch.8
在新的網頁上,修改之後,把資料傳到「原本網頁」
這就是「跨網頁張貼」、「跨網頁公布」的技巧。
詳見書本上集 Ch.15
其實最簡單的作法,就是修改後,立即寫進DB
如此一來,Gridview只要重新 DataBinding即可。
但我不清楚為何搞到這麼複雜,「只修改畫面上的TextBox,不寫進資料庫???」
==============================================================================
這個範例使用到的知識,如下:
1. 跨網頁公布、跨網頁張貼
詳見書本上集,Ch.15
2. 大型控制項裡面的「按鈕」 CommandName 屬性與 RowCommand事件(或 ItemCommand事件)
詳見書本上集 Ch.10
3. 大型控制項的「流水號」
這三招組合起來,範例 GridView_CrossPage_Posting_0.aspx 就做得到:
01 | protected void Page_Load( object sender, EventArgs e) |
02 | { |
03 | if (Page.PreviousPage != null ) |
04 | { |
05 | if (PreviousPage.IsCrossPagePostBack) |
06 | { //跨網頁張貼,才能運作下面的程式碼。 |
07 | int j = Convert.ToInt32(Session[ "RowIndex" ]); |
08 |
09 | TextBox TB_A = (TextBox)GridView1.Rows[j].FindControl( "TextBox_test_time" ); |
10 | TextBox PrevPageTB1 = (TextBox)PreviousPage.FindControl( "TextBox1" ); |
11 | TB_A.Text = PrevPageTB1.Text; |
12 |
13 | TextBox TB_B = (TextBox)GridView1.Rows[j].FindControl( "TextBox_title" ); |
14 | TextBox PrevPageTB2 = (TextBox)PreviousPage.FindControl( "TextBox2" ); |
15 | TB_B.Text = PrevPageTB2.Text; |
16 | } |
17 | } |
18 | } |
裡面共有三組範例,兩支檔案為一組。
第一組,範例1~2。使用傳統Http Get方式來傳值。請注意!會有SQL Injection攻擊的疑慮。難易度:低!
第二組,範例3~4。跨網頁張貼(CrossPage-Posting)搭配 Session
第三組,範例5~6。直接使用Session,最簡便!難易度:低!
==============================================================================
完成上面三個步驟就行了,都是書本上集的技巧
但我覺得搭配下面這一招,才能連貫起來!
4. GridView 批次 修改(編輯)多列、批次更新
.......................以下是廣告........................................................................................
我的書、我的課程,絕對沒有太多招數
都是用最基本的技巧,
組合成各種變化。
如同詠春拳,三個套路,
排列組合、變化萬千
王家衛的電影,一代宗師,台詞如下:
勇哥:我打雜家的。
葉問:你可真夠雜的。
勇哥:雜又怎麼樣?能打不就行啦。
人家宮家六十四手千變萬化,你們詠春就三板斧。攤、膀、伏,你怎麼打啊?
葉問:三板斧就夠你受的了.
與其到處 Copy範例、到處抄襲程式碼(找到了也改不動)
為什麼不一次學好、學清楚?
然後讓自己有生產力呢?
(你學了一百招,但上了戰場,一招都使不出來?)
(客戶的要求,沒有一個你能自己做到?還是上網逐一發問、抄抄改改?)
為什麼人家可以千變萬化?
我只能到處拼拼湊湊?卻還天天加班、做不完?最後還是迷迷糊糊?
讓我來告訴您,ASP.NET該怎麼學?心法在哪裡?
如何一以貫之?
如何啟動「輕輕鬆鬆的自我學習之道」?
讓我告訴你,
一個沒有大型補習班招牌、沒有關鍵字廣告的書籍與課程
在時局這麼亂、經濟與工作越來越蕭條的 Bumbler 無能年代,
為何所有補習班的 ASP.NET課程都開不成、招不到學生
我的課程,班班額滿,欲罷不能.............縱貫這三四年 全台灣 的 ASP.NET入門教學
沒有留言:
張貼留言