• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      GridView控件批量更新方法的改進研究與實現(xiàn)

      2013-11-26 06:32:26歐陽艷階
      關(guān)鍵詞:單行批量控件

      歐陽艷階,張 明

      (十堰職業(yè)技術(shù)學院 信息與智能工程系,湖北 十堰 442000)

      0 引言

      ASP.Net是微軟公司.Net戰(zhàn)略的重要組成部分,是一種建立在通用程序語言上的程序構(gòu)架,能被Web服務器用來建立強大的服務器端Web應用程序。ASP.Net大量使用Com技術(shù),將 Web瀏覽器和Web服務器之間的數(shù)據(jù)交換完全包裝起來。作為微軟公司戰(zhàn)略產(chǎn)品,ASP.Net還提供一個統(tǒng)一的Web開發(fā)模型,其中包括WEB開發(fā)人員開發(fā)大型Web應用程序所需要的各種技術(shù)和服務。ASP.Net還提供一種新的編程結(jié)構(gòu),可通過編譯生成穩(wěn)定性和伸縮性更好的WEB應用程序,并在安全性上有完整的保護機制。

      ASP.Net中的網(wǎng)格控件GridView以類似Excel電子表格的形式提供給用戶一個個性化的表格視圖,表格視圖中每一行代表來自數(shù)據(jù)源記錄集的一條記錄。這樣可以批量顯示數(shù)據(jù),也為更新數(shù)據(jù)創(chuàng)造了條件。同時GridView控件提供了豐富的、友好的智能標記界面,常用的更新、排序、分頁、刪除等操作幾乎可以零代碼實現(xiàn)。GridView控件還具有分頁等頁面管理屬性,可以自定義頁面導航和計數(shù),使分頁管理和控制更加方便、合理。GridView控件的面向?qū)ο蟮氖录芾砉δ茉O計成會觸發(fā)兩個事件,一個在操作前發(fā)生,一個在操作后發(fā)生。操作前觸發(fā)的事件多為“ing”事件,操作后觸發(fā)的事件多為 “ed”事件,比如Sorting事件和Sorted事件,分別標示排序前發(fā)生和排序后發(fā)生的事件;RowDeleting和RowDeleted事件分別標示正在刪除和刪除后發(fā)生的事件。由于GridView控件出色的數(shù)據(jù)管理功能,因此深受開發(fā)人員的喜愛,在WEB開發(fā)過程中被大量使用[1]。

      1 問題的提出

      在實際 WEB項目開發(fā)過程中,經(jīng)常會碰到插入、修改、刪除等批量數(shù)據(jù)處理的情況。但Grid-View一般一次只能編輯一行。為了優(yōu)化GridView控件的數(shù)據(jù)更新功能,減少往返提交數(shù)據(jù)的代價,可以一次性批量編輯GridView中的所有行,以減少網(wǎng)絡傳輸次數(shù),達到提高系統(tǒng)性能的目的。

      GridView控件采用表格形式顯示從數(shù)據(jù)庫中獲取的數(shù)據(jù)集合。但GridView控件本身只能對其所綁定的數(shù)據(jù)進行單行的更新,當需要對GridView控件所綁定的數(shù)據(jù)進行大批量更新時,GridView控件自身的單行更新效率就顯得比較低下了。而目前已有的GridView控件批量更新方法雖然能實現(xiàn)批量更新,但存在許多缺陷。本文探討了GridView控件的單行更新、通用批量更新方法,并對Grid-View控件通用批量更新的方法進行了改進,并設計了算法。

      2 解決問題的設計思路

      2.1 通用批量更新方法[2]

      雖然GridView控件一般只能單行更新數(shù)據(jù),但通過變通,使用其他控件及模板技術(shù)仍然能實現(xiàn)批量更新數(shù)據(jù)功能,只是存在部分功能上的缺陷而已。通用批量更新方法如下:首先用TextBox控件替換模板列中的Label控件,并將TextBox控件的Text屬性設置為綁定數(shù)據(jù)表中欲更新的表字段,如:Bind("Teacher_Name")。然后通過循環(huán)遍歷GridView控件所加載的所有行,獲取每一行Text-Box控件的Text屬性所設置的數(shù)據(jù)內(nèi)容。通過Update語句更新數(shù)據(jù),最后重新使用Bind()方法綁定數(shù)據(jù),達到批量更新GridView控件數(shù)據(jù)的目的。

      2.2 通用批量更新方法存在的缺陷

      GridView控件的通用批量更新方法雖然能一次性批量更新所有數(shù)據(jù)記錄集中的數(shù)據(jù),但該方法卻存在以下不足。

      (1)使用該方法后無法重新使用GridView控件本身具備的單行更新編輯功能,每次都必須進行所有記錄集數(shù)據(jù)的批量更新。

      (2)模板列ItemTemplate中的內(nèi)容僅有Text-Box控件,需要更新記錄集數(shù)據(jù)的綁定后狀態(tài)和初始綁定狀態(tài)均為TextBox控件的Text屬性,無法實現(xiàn)記錄集數(shù)據(jù)的靜態(tài)綁定,同時也不利于觀察、區(qū)分數(shù)據(jù)集數(shù)據(jù)批量更新前后的不同變化。

      2.3 GridView控件通用批量更新方法的改進

      為了解決GridView控件一次性批量更新數(shù)據(jù)時存在的上述問題,本文對GridView控件的通用批量更新方法進行了部分改進,具體方法如下:

      (1)在ItemTemplate模板列中添加文本框控件TextBox,將TextBox控件的Text屬性與 Grid-View控件原來使用的Lable控件綁定到相同的數(shù)據(jù)字段,并將其默認狀態(tài)隱藏。同時保持EditItem-Template模板列的默認綁定不變。

      (2)增加一個“批量保存”按鈕btn_AllSave。在觸發(fā)btn_AllSaved的Click事件時,首先判斷Grid-View控件的記錄集數(shù)據(jù)是否處于單行編輯狀態(tài)。如果是單行編輯,則先進行單行的更新,否則將ItemTemplate模板列中的TextBox控件的Visible屬性設置為True,Label控件的Visible屬性設置為False,并將GridView控件本身的“編輯”列隱藏。

      3 算法設計

      本文以一個高校的人事管理系統(tǒng)為載體,闡述了對GridView控件通用批量更新方法的改進措施及算法設計思想。

      (1)設置并建立數(shù)據(jù)庫連接及相關(guān)表的查詢語句設計;

      (2)在GridView控件的ItemTemplate模板列中添加TextBox控件,并將TextBox控件綁定到相應表字段。使GridView控件能正確顯示數(shù)據(jù)庫中的記錄集;

      (3)設置5個類的全局公用標志變量,分別對應高校的人事管理系統(tǒng)中的教師姓名、性別、學歷、電話、家庭住址五個TextBox控件個字段,用于監(jiān)視這五個字段是否發(fā)生了變化。每次循環(huán)開始前,五個標志均置空。每個標志變量均在TextBox控件的TextChanged事件中進行重新設置。以確保循環(huán)時能監(jiān)測到該行是否發(fā)生了變化;

      (4)以 GridView1.Rows.Count進行計數(shù)循環(huán),若該行五個標志中任何一個發(fā)生變化,即表明該行需要更新。若五個標志均為置空狀態(tài),即表明該行不需參與更新;

      (5)使用更新語句進行數(shù)據(jù)更新。

      4 代碼設計及分析

      4.1 GridView控件ItemTemplate模板列的代碼設計[3]

      其中<%#Bind("Teachername")%>的功能是使用Bind()方法將TextBox控件的Text屬性綁定為數(shù)據(jù)庫中表的“Teachername”字段

      4.2 設計數(shù)據(jù)庫連接字符串

      在在web.config WEB配置文件中添加數(shù)據(jù)庫連接字符串。

      4.3 設計數(shù)據(jù)庫綁定方法bind()

      4.4 生成修改字符串

      4.5 執(zhí)行更新語句,并輸出提示信息

      5 結(jié)束語

      GridView控件的批量數(shù)據(jù)更新功能是一種高效的編程策略,是B/S結(jié)構(gòu)軟件開發(fā)中非常實用的功能。將GridView控件的批量數(shù)據(jù)更新功能巧妙地運用到B/S結(jié)構(gòu)軟件中,可以提高 WEB項目開發(fā)與運行效率,是B/S結(jié)構(gòu)軟件開發(fā)中非常有價值的算法。

      基于實際開發(fā)的軟件工程項目,本文闡述了Visual Studio.Net平臺下GridView控件的批量數(shù)據(jù)更新的改進算法,提出了改進措施,設計了算法,并給出了部分代碼。本文在Visual Studio 2008,SQL Server 2005環(huán)境下調(diào)試通過。

      [1]楊學全.Visual C#.NET Web應用程序設計[M].北京:電子工業(yè)出版社,2012:7-9.

      [2]劉 偉.Visual C#程序設計與項目實踐[M].北京:清華大學出版社,2011:108-112.

      [3]鄭阿奇.Visual C#網(wǎng)絡編程[M].北京:電子工業(yè)出版社,2011:178-181.

      猜你喜歡
      單行批量控件
      (2+1)維時空分數(shù)階Nizhnik-Novikov-Veslov方程組的精確單行波解
      批量提交在配置分發(fā)中的應用
      科學家(2021年24期)2021-04-25 12:55:27
      溫室番茄膜下滴灌單膜單行栽培新法
      The misfortune in life
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      Joseph-Egri方程的單行波解
      淺議高校網(wǎng)銀批量代發(fā)
      基于AUTOIT3和VBA的POWERPOINT操作題自動批量批改
      考慮價差和再制造率的制造/再制造混合系統(tǒng)生產(chǎn)批量研究
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      崇仁县| 越西县| 嵊泗县| 克东县| 营山县| 开江县| 从化市| 达拉特旗| 浙江省| 嵩明县| 嘉荫县| 和硕县| 英吉沙县| 祁东县| 岳池县| 平塘县| 武乡县| 平顶山市| 阿鲁科尔沁旗| 庆云县| 巴林左旗| 北川| 浮山县| 杭锦后旗| 洛阳市| 宜兰县| 习水县| 吉木乃县| 崇信县| 凌源市| 洪雅县| 淮滨县| 淳化县| 龙山县| 屏山县| 孟连| 徐闻县| 固阳县| 宜州市| 忻州市| 上思县|