一看到這標題《ASP.NET網頁動態添加數據行》,想起來似乎有點難實現。因為網頁的周期性原因,往往在PostBack之后,狀態難於有所保留。但Insus.NET又想實現這樣的效果,用戶點擊網頁上的“添加”銨鈕,能不停地添加數據行在網頁上。
有關相似的功能,Insus.NET也有實現過,如:
《第二次動態產生銨鈕的Click事件》http://www.cnblogs.com/insus/archive/2012/10/09/2717420.html
《點擊一次銨鈕產生一個新文本框,分別輸入值,然后獲取》http://www.cnblogs.com/insus/archive/2012/09/24/2700658.html
《在用戶控件(ASCX)創建用戶控件(ASCX)》http://www.cnblogs.com/insus/p/3148345.html
《創建對象》http://www.cnblogs.com/insus/archive/2011/12/08/2281000.html
等等。特別是最后一篇《創建對象》讓我們能夠在網頁運用到自己創建的物件。
為何又要再寫此類的博文呢?
因為昨天有網友於下面這篇《輸入數字動態創建行》留言,可觀評論#3至#5樓,意思是點擊銨鈕能無限次動態添加數據行,網友還附加了圖片:
OK,Insus.NET就以網友的表格來實現一個較通用的例子。
根據表,它明顯示有四個字段,你需要在數據庫創建一個表,有5個字段,添加一個ID 唯一性的,可以自動增長,也可以手動輸入,如果是后者,建議將數據類型改為string,方便存儲GUID碼。 當然,你還得創建一系列存儲過程,如獲取所有記錄,添加,更新以及刪除等方法的存儲過程。
下面是寫網頁程序,首先創建一個對象:
再創建一個實體,即一個是集合,用來存儲上面的對象。
在網頁上,拉一個銨鈕,拉一個GridView:
看到此步,你會明白,用戶每點擊一次銨鈕,其實是添加一個空的臨時記錄,然后顯示於GridView控件。
去.aspx.cs寫程序,為了臨時能存儲添加的記錄,我們先存儲內存中,用Session吧:
開始寫添加行銨鈕事件:
把添加的記錄顯示於GridViw控件上:
Ok,來看看效果:
本例演示完成。
刪除一行或是填充數據,再一次性保存入數據庫中,有時間再另外開一篇,演示。