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

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

 

有一個 GridView,按下按鈕之後,會去另一個網頁進行修改。

      GridView先轉成樣板,然後把 Label改成 TextBox並且重新「設定DataBinding」

      詳見書本上集 (ASP.NET專題實務(I) / 博碩出版)Ch.8

 

在新的網頁上,修改之後,把資料傳到「原本網頁」

這就是「跨網頁張貼」、「跨網頁公布」的技巧。

詳見書本上集 (ASP.NET專題實務(I) / 博碩出版) Ch.15

其實最簡單的作法,就是修改後,立即寫進DB

如此一來,Gridview只要重新 DataBinding即可。

 

但我不清楚為何搞到這麼複雜,「只修改畫面上的TextBox,不寫進資料庫???」

  

==============================================================================

這個範例使用到的知識,如下:

 1. 跨網頁公布、跨網頁張貼

    http://www.dotblogs.com.tw/mis2000lab/Tags/%E8%B7%A8%E7%B6%B2%E9%A0%81%E5%85%AC%E5%B8%83/default.aspx

    詳見書本上集 (ASP.NET專題實務(I) / 博碩出版),Ch.15

  

2. 大型控制項裡面的「按鈕」 CommandName 屬性與 RowCommand事件(或 ItemCommand事件)

    詳見書本上集  (ASP.NET專題實務(I) / 博碩出版)Ch.10

 

 3. 大型控制項的「流水號」

    詳見  http://www.dotblogs.com.tw/mis2000lab/archive/2011/11/05/gridview_container_dataitemindex.aspx

 

 這三招組合起來,範例 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;
            }
        }
    }

  

檔案下載:GridView_CrossPage_Posting.rar

 裡面共有三組範例,兩支檔案為一組。

 

第一組,範例1~2。使用傳統Http Get方式來傳值。請注意!會有SQL Injection攻擊的疑慮。難易度:低!

第二組,範例3~4。跨網頁張貼(CrossPage-Posting)搭配 Session

第三組,範例5~6。直接使用Session,最簡便!難易度:低!

 

==============================================================================

 完成上面三個步驟就行了,都是書本上集  (ASP.NET專題實務(I) / 博碩出版)的技巧

 但我覺得搭配下面這一招,才能連貫起來!

 

 

4. GridView 批次 修改(編輯)多列、批次更新

    [MSDN][轉貼] GridView "批次"執行更新與刪除、執行 "大量"更新更新與刪除

    http://www.dotblogs.com.tw/mis2000lab/2012/01/13/gridview_multi_row_updating_20120113    

 

  

2013/11/11補充:

[勘誤]VS 2013因為Routing產生錯誤 -- 跨網頁張貼(Cross-Page Posting),微軟稱為「跨網頁公布」

http://www.dotblogs.com.tw/mis2000lab/2013/11/11/vs2013_cross_page_post_routeconfig

 

 

另外一位前輩的相關範例(作者F6 Team) 

ASP.NET父子視窗的應用,利用子視窗的Gridview選取一個值,傳回父視窗

http://www.dotblogs.com.tw/puma/2008/04/26/3508

 

 

 

.......................以下是廣告........................................................................................

 

我的書、我的課程,絕對沒有太多招數

 都是用最基本的技巧

組合成各種變化。

 

如同詠春拳,三個套路,排列組合、變化萬千

 

王家衛的電影,一代宗師,台詞如下:

勇哥:我打雜家的。 

 

葉問:你可真夠雜的。 

 

勇哥:雜又怎麼樣?能打不就行啦。

          人家宮家六十四手千變萬化,你們詠春就三板斧。攤、膀、伏,你怎麼打啊? 

 

葉問:三板斧就夠你受的了. 

 

 

 

 

 

與其到處  Copy範例、到處抄襲程式碼(找到了也改不動)

為什麼不一次學好、學清楚?

 

然後讓自己有生產力呢?

(你學了一百招,但上了戰場,一招都使不出來?)

(客戶的要求,沒有一個你能自己做到?還是上網逐一發問、抄抄改改?)

  

為什麼人家可以千變萬化?

 我只能到處拼拼湊湊?卻還天天加班、做不完?最後還是迷迷糊糊?

  

 

讓我來告訴您,ASP.NET WebForm 該怎麼學?心法在哪裡?

 

   如何一以貫之

         如何啟動「輕輕鬆鬆的自我學習之道」?

1.  [自我評量表] ASP.NET 我該上什麼課?入門、或是進階?.....

2.  [課程大綱]ASP.NET入門實戰 + ADO.NET進階班(七週),教學內容

 

 

 

 

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

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

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

線上課程教學,遠距教學 (ASP.NET MVC 約75~88hr)  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 => .NET Core MVC 線上教學

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