ASP.NET編輯與更新資料(非GridView控制項實現)

來源:互聯網
上載者:User

標籤:blog   http   os   io   資料   for   2014   問題   

Insus.NET在實現《ASP.NET開發,從二層至三層,至物件導向 (5)》http://www.cnblogs.com/insus/p/3880606.html 中,沒有把資料編輯與更新功能一起示範,留下給網友們自由發揮,但是還是有網友想看看Insus.NET用實現方法。

以前Insus.NET的做法,是在GridView控制項中進行。如這篇視頻教程《GridView Edit Update Cancel Delete》http://www.cnblogs.com/insus/archive/2011/01/25/1944295.html

或者這篇《網站是否有播放音樂功能》http://www.cnblogs.com/insus/archive/2013/05/09/3066347.html  均可以看到GridView控制項的更新功能。


總結以往的經驗,覺得編輯或更新GridView控制項的記錄,使用者需要點擊多次按鈕,才能完成。而且對GridView控制項編寫的代碼也多。因此Insus.NET想直接點擊GridView控制項某筆記錄,然後顯示於添加的域中進行更新。

OK,開始來看看:
首先在GridView控制項添加一列:



然後在添加按鈕後,再添加兩個銨鈕,一個是更新,一個是取消:
 

 


這兩個銨鈕,一開始它的狀態是禁用的,可看它們的Enabled=“false”。也就是說網頁載入時,這兩個銨鈕是不可用。
接下來,我們分別實現OnRowCreated="GridViewEmployee_RowCreated",OnClick="ButtonUpdate_Click"和OnClick="ButtonCancel_Click"事件。先實現第一個,點擊GridView控制項某一筆記錄時,希望能擷取這筆記錄資料。因此需要建立一個新的預存程序,By主鍵來擷取點擊目前記錄:



有添加了資料庫層的預存程序,前一篇寫好的Employee.cs也需要添加相應的邏輯方法或是函數。


現在可以寫了:



上面有一個事件委託ButtonEdit_Click:



上面程式有幾點說明,先是點擊編輯之後,擷取被點選的的記錄主鍵,然後以主鍵是擷取整筆記錄,然後綁定給添加域中去(標記1)。標記2,需要把添加銨鈕與綁定主鍵的文字框禁用。
標記3是Active更新和取消銨鈕。

下面是取消銨鈕ButtonCancel_Click事件,實際就是初始化控制項狀態功能:



文字框清空,該禁用的銨鈕禁用,該啟用的銨鈕啟用。最後是更新銨鈕ButtonUpdate_Click事件:


看到否,取消銨鈕與更新事件結束之後,所執行的代碼是一樣的。因此可以把它們寫成一個單獨的小方法:

 

實現完了,看看即時操作示範效果,點擊“Edit”銨鈕時,它出現了一個異常:
Line: 885
Error: Sys.WebForms.PageRequestManagerServerErrorException: Object reference not set to an instance of an object.


F9設定中斷點,F5debug,然後按F11進行跟蹤,跑到下面出現異常了:


細心檢查,原來真正的問題,出現在BizBaseSQLSp.cs類庫中,函數public DataSet ExecuteDataSet(),下面是修改正確方法:



儲存,再次運行:



沒有難度,這樣的話,設計網頁時,可以把添加域與編輯同用,不必浪費在寫GridView控制項內,還要定義編輯模版。


Insus.NET雖寫的不是什麼絕世之作,平凡之中能讓您從中擷取對ASP.NET技術的有所提升與積累,足已。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.