程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 編程“方便面”之用戶控件

編程“方便面”之用戶控件

編輯:關於ASP.NET

學習使用.net已經有數個年頭,從使用.net進行cs開發,到現在做Web開發,一直都是想當然的寫著、 敲著。知道有一天,一個java開發者問我一個問題,我雖然將java語言已經還給母校了,但是還是可以讀 懂的。在我嘗試解決它的問題的時候,發現那哥們無法理解我的想法,他是用eclipse開發java的,java 組的一位資深的技術員過來後,對我的解決方法也是不感冒,問我為什麼要那麼寫呢?為什麼要那麼愛用 控件呢?而且不是很認同控件這種將特別功能需求進行封裝的編程方式。但是作為一個已經.net語言思路 的開發者,我還是很喜歡這些可愛的“控件”家伙的。鄙人感覺它們是體現高級編程語言特點的產物,是 高效編程的必要組成。在項目中適度的”食用”,還是可以節省大量的代碼開發量,並且可以實現頁面功 能之間的松耦合,使得代碼更有條理。這一陣做了幾個項目,在項目中對一些問題用“用戶控件”做了適 度的功能封裝,感覺用起來很是方便,但是也感覺用些不足,貼出來互相學習,也希望和園子的朋友對用 戶控件的使用方式進行交流。

分頁問題應該是web開發中的一個常見問題。Gridview控件雖然提供了分頁的功能,但是嚴格的講,它 並不是真正的分頁,只是“顯示分頁”罷了。我做的幾個項目都是信息管理系統,數據量比較大,如果用 gridview進行分頁,在大訪問量下實在是“慘”了點,所以就想用存儲過程實現分頁,每次只是取到本頁 的20條或者有限的數據。網絡的上的存儲過程很多,但是實際操作起來也很麻煩,所以就想把分頁的功能 封裝起來,實現一個分頁控制器的功能。

先說一下思路吧,我的想法是創建一個分頁控制類來控制存儲過程的讀取,在控件的使用頁面傳遞類 似頁碼、表名稱、等適當數量的條件參數,觸發更新方法調用存儲過程來刷新數據。編寫設及的問題有3 個:

1、分頁控制類的封裝,封裝那些東西;

2、用戶控件與宿主頁面的數據交互;

3、分頁存儲過程;

首先是創建一個用戶控件、控件起碼要有樣子,(”記錄總共xx條 當前第x頁 首頁 上一頁 下一頁 末頁 轉到〔〕”之類的),簡單搞定。至於後台的代碼就是邏輯過程了。上一頁的操作、下一頁等的操 作。根據傳遞的條件,相應的與分頁控制類進行交互。

在頁面中,我還放了兩個隱藏字段來存儲頁面必要的兩個字段,用來記錄分頁狀態

<asp:HiddenField ID="hdfcurr" runat="server" Value="0" />
       <asp:HiddenField ID="hdfcount" runat="server" Value="0" />

從用戶控件與宿主頁面的數據交互方面先說,delegate〔委托〕可以輕松實現,定義一個回調就可以 實現。

public delegate void DelegateDataBind(DataTable dt);
     private DelegateDataBind _dataBindEvent;
     public DelegateDataBind dataBindEvent
     {
         get { return _dataBindEvent; }
         set { _dataBindEvent = value; }
     }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved