討論 父子GridView(大腸包小腸)
GridView密技#6--- [主細表 / 主表明細]大腸包小腸的另一種版本
- 12289
- 0
- ASP.NET 2.0/3.5與 VS 2005/2008
- 2012-03-20
討論 父子GridView(大腸包小腸)
一個初學者剛剛學ASP.NET,光是新的都應付不完。......哪有時間耍花槍?
我直接給他們「漂亮的範例」、「進階的寫法」,說不定他們看不懂就放棄了。
我不管是寫書、或是寫Blog,理念大概都只有一個,就是「怎麼讓新手無痛入門、快速入門?」
真的可以嗎?.......方法,我還在追尋,但我相信這個方法真的存在!
謝謝下面這位朋友(小白)的來信,他的來信,讓我回想到以前的一些事情,
以前的我,沒有能力證明我的方法是對的。
試過這幾年之後,我想:細節可以再調整,但大方向應該沒錯。
本書採用MS SQL Server作為資料庫的範例,但很多讀者(尤其是在校的學生)還是習慣採用Access。
以下簡單的介紹,本書範例改用 Access的幾個注意事項
有了上一篇文章的入門(單一欄位的搜尋),這篇文章可以試試看「多重欄位」的搜尋。
相關文章我早就發表過幾篇,只是這一次把它寫成文章(PDF檔),
圖片與講解都會比BLOG要來得仔細一點
這篇文章的難度比上一篇文章高得多,最後一個範例甚至要動手自己寫。
所以本文適合給「已經讀完本書的讀者」,作為課後進修。
毫無基礎的初學者,直接看這篇文章「可能」會很吃力。建議您三思!
Q : 畫面上有一個 GridView(甲),點選某一篇文章(資料)後,
另外一個 GridView(乙)就會呈現出這篇文章(資料)的詳細內容。
A: GridView+SqlDataSource,一行程式碼都不用寫。
這也就是我書本(上集)裡面,第九章( Ch .9-1) 的第二個範例。
之前提過會員登入、權限控管的問題,
在我的書上,第十六章(狀態管理)也有相關範例。
但還是有讀者希望我寫一個範例給他們參考,
我是採用最傳統的作法,以 Session來作。
這個作法雖然傳統,但是「千年傳統,全新感受」!
GridView預設的功能,有「選取(Select)」、「編輯、取消」、「更新」、「刪除」
唯獨沒有「新增(Insert)」 的功能。
本文的範例便能破解。
我在十月三日的時候,終於說服出版社為「ASP.NET專題實務」推出C#版。
今天(2008/11/21)終於完成這項工程,我把所有的範例通通改成C#語法。
全書20章,至少有204個範例
其中遇見一些小阻礙,但也學到不少東西。
我發現本書的第三章 第七節(3-7)最後一個範例,我要讀者自己打開來看,自己練習。
這次改寫時,我拿出來解釋了一次。
已經買書(VB版)的讀者,覺得對不起他們。 不能厚此薄彼,所以寫一篇文章彌補一下。
但我觀察最近的書店銷售(以天瓏書局為例),像是聖殿祭司、章立民老師的作品,
C#版的銷售量,已經都高於VB版了。
可見市場有這樣的需求~ 入門的讀者需要兩種語法,各自指引。
如果有機會推出C#版的話,內容還會追加,大放送。
這個範例跟上一篇文章完全相同,
差別只是把 Web Service裡面的 ADO.NET (DataReader模式)的寫法,
修改成 SqlDataSource來作而已(但從頭到尾都要自己手寫程式),
SqlDataSource的DataMode設定為「DataSet」
這是Web Service的第四個範例。
我們用 Web Service來寫 ADO.NET程式,從資料庫撈點資料來玩玩。
把舊有的功能,加上「Web Service」的新方法來實作。
是不是更能瞭解 Web Service帶來什麼改變呢?
給 User作輸入,然後透過 Web Service運算後,把結果呈現在我們畫面上,
有 Input ==> Process(Web Service) ==>Output才像樣!
好吧!這就是本文的範例......
上一篇文章,已經做好一個 Web Service了。
現在要介紹的,就是「呼叫(Call)那個已經完成的Web Service」來使用。
第一,要加入「Web參考(Web Reference)」。
第二,就是寫兩行程式。..............打完收工!真簡單~
不要把 Web Service想得太難,他其實就是一個 自訂的Function(),只不過他可以在網路(Web)上分享給別人使用,透過 Web Port 80,分享很容易,不用擔心防火牆或是其他設定問題..........
如果我寫了一個 Web Service,我上網公開,人人都可以連上來使用。那真是一個天下為公的美好願景!
本文的範例,將分成兩部分。
第一部份,撰寫一個 Web Service程式。
我想用其他的 Web控制項來展示資料,例如:TextBox、Label這些簡單的Web控制項,該怎麼作呢?
這種簡單型的Web控制項,就要自己動動手寫一點程式,才能完成!
這個範例,我們同時以 DataReader與 DataSet兩種方法來撰寫。
SqlDataSource會自動完成 Select / Update / Delete / Insert等等的指令與參數。
如果自己動手寫程式(Code Behind),在程式碼裡面,該如何啟動這些已經寫好的SQL指令呢?
這個範例有[兩個]很重要的設定畫面,如果不照著作,程式會有問題。
這篇文章超悶!因為全部都用後置程式碼(Code Behind)來作,自己寫程式來作 SqlDataSource
所以GridView的「分頁」、「編輯」、「刪除」、「更新」......通通採用後置程式碼(自己動手寫)
在許多網路論壇上,會有人發問這樣的問題,因為入門書比較不會講到這些....包含 YouTube教學影片
關於 ASP.NET的 Cache,官方網站其實講的很清楚
話雖如此,但我還是相信做兩個範例來看,會更為清楚。
直接看看程式的執行結果,會比讀官方文件更快瞭解。
難怪洋人有句諺語「一張圖片,勝過千言萬語」。
Cache與AJAX都很抽象,講再多也沒用。直接讓學生(初學者)看看成果,動手玩一下,他們就會恍然大悟!