[習題].FindControl()的習題 -- GridView 跨網頁 修改(編輯)

摘要:[習題].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 就做得到:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.PreviousPage != null)
        {
            if (PreviousPage.IsCrossPagePostBack)
            {  //跨網頁張貼,才能運作下面的程式碼。       
                int j = Convert.ToInt32(Session["RowIndex"]);

                TextBox TB_A = (TextBox)GridView1.Rows[j].FindControl("TextBox_test_time");
                TextBox PrevPageTB1 = (TextBox)PreviousPage.FindControl("TextBox1");
                TB_A.Text = PrevPageTB1.Text;

                TextBox TB_B = (TextBox)GridView1.Rows[j].FindControl("TextBox_title");
                TextBox PrevPageTB2 = (TextBox)PreviousPage.FindControl("TextBox2");
                TB_B.Text = PrevPageTB2.Text;
            }
        }
    }

 

 
 
裡面共有三組範例,兩支檔案為一組。
 
第一組,範例1~2。使用傳統Http Get方式來傳值。請注意!會有SQL Injection攻擊的疑慮。難易度:低!
第二組,範例3~4。跨網頁張貼(CrossPage-Posting)搭配 Session
第三組,範例5~6。直接使用Session,最簡便!難易度:低!
 
 
 
==============================================================================
 
完成上面三個步驟就行了,都是書本上集的技巧
 
但我覺得搭配下面這一招,才能連貫起來!
 
 
4. GridView 批次 修改(編輯)多列、批次更新
 
    
 
 
 
2013/11/11補充:
 
 
 
 
 
 
.......................以下是廣告........................................................................................
 
 
我的書、我的課程,絕對沒有太多招數
 
都是用最基本的技巧
組合成各種變化。
 
如同詠春拳,三個套路,
排列組合、變化萬千
 
王家衛的電影,一代宗師,台詞如下:
 
勇哥:我打雜家的。 
 
葉問:你可真夠雜的。 
 
勇哥:雜又怎麼樣?能打不就行啦。
          人家宮家六十四手千變萬化,你們詠春就三板斧。攤、膀、伏,你怎麼打啊? 
 
葉問:三板斧就夠你受的了. 
 
 
 
 
 
與其到處  Copy範例、到處抄襲程式碼(找到了也改不動)
 
為什麼不一次學好、學清楚?
 
然後讓自己有生產力呢?
(你學了一百招,但上了戰場,一招都使不出來?)
(客戶的要求,沒有一個你能自己做到?還是上網逐一發問、抄抄改改?)
 
 
為什麼人家可以千變萬化?
 
我只能到處拼拼湊湊?卻還天天加班、做不完?最後還是迷迷糊糊?
 
 
 
 
   如何一以貫之
         如何啟動「輕輕鬆鬆的自我學習之道」?
 
 
讓我告訴你,
一個沒有大型補習班招牌、沒有關鍵字廣告的書籍與課程
 
 
在時局這麼亂、經濟與工作越來越蕭條的  Bumbler 無能年代
 
為何所有補習班的 ASP.NET課程都開不成、招不到學生
 
我的課程,班班額滿,欲罷不能.............縱貫這三四年 全台灣 的 ASP.NET入門教學
 
 
 
 

 

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

累積時數約 75小時...... 第一天(5.5小時)完整內容,"免費"讓您評估