【小試身手】幾個自定義控制元件的組合應用,實現簡單的“增刪改查”功能(有原始碼)
分頁控制元件、查詢控制元件、顯示資料的控制元件和表單控制元件,終於把這幾個控制元件結合在一起了,和在一起之後就可以讓“增刪改查”變的非常的簡單和容易了,當然還需要資料訪問函式庫的支援。
綜合演示的IDE是 vs2008,.net Framework2.0,C#, B/S 。目標(適用範圍)是網站的後臺管理、OA、CRM、CMS等資訊管理方面的專案。
演示網址:http://jyk.mainsdn.com/ 感謝 CleverKing (www.mainsdn.com)提供空間和域名。
自定義控制元件的原始碼下載地址:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html
綜合演示的程式(原始碼)的下載地址:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html
先發個截圖:
![](https://img.796t.com/res/2022/04-28/13/94cc25a3f18ad82d00e2a35d89281df4.jpeg)
表單頁面,實現增加、修改資料。
![](https://img.796t.com/res/2022/04-28/13/9db4f7989e4d4a2a33ec90b531c405d0.jpeg)
表面上看好像沒什麼特別的,但是有兩點需要注意一下。
1、像文字框、下拉列表框這樣的控制元件,並不是在IDE裡面拖拽出來的,而是表單控制元件、查詢控制元件根據配置資訊自動“繪製”出來的。
2、如果您留意一下網址的話,您會發現“新聞管理”和“員工管理”的列表頁面的網址都是http://jyk.mainsdn.com/_CommonPage/DataList1.aspx?fid=21
同樣兩個表單頁面的網址也是一樣的,都是http://jyk.mainsdn.com/_CommonPage/DataDetail.aspx?k=1&fid=21&id=-2 同樣也只是 fid 不一樣,一個是21,一個是23。
這兩個頁面不是隻能承擔兩個功能點,其他的功能點也都可以使用這兩個頁面,只要功能不是太複雜的就可以。一般的專案,80%的列表頁面都可以使用DataList.aspx頁面來實現,而30%-80%的表單也都可以使用DataDetail.aspx頁面實現。
可能您會想,這麼多的功能點都是用同一個頁面實現,頁面裡的程式碼是不是會很多很複雜,其實頁面裡的程式碼很簡單,其原因就是採用了一系列的自定義控制元件來實現的。
下面是基類、網頁的結構圖:
![](https://img.796t.com/res/2022/04-28/13/ace004d51a4f5f13ca8b51f2606984e9.jpeg)
VS2008提供了一個計算程式碼度量值的功能,用一下看看吧,總共的程式碼數才128行,挺簡潔的吧。
![](https://img.796t.com/res/2022/04-28/13/2e80d6b49a67e9a8c29e98a13f2393e5.jpeg)
頁面裡的程式碼
貼一段BasePageList 的程式碼,其他的就先不貼了,感興趣的話可以下載原始碼。
public class BasePageList : BasePage
{
定義公用的控制元件,以便於統一控制#region 定義公用的控制元件,以便於統一控制
/**//// <summary>
/// 分頁用的控制元件
/// </summary>
public QuickPager myPager;
/**//// <summary>
/// 顯示資料用的控制元件
/// </summary>
public MyGrid myGrid;
/**//// <summary>
/// 查詢控制元件
/// </summary>
public MyFind myFind;
/**//// <summary>
/// 查詢按鈕
/// </summary>
public Button Btn_Search;
#endregion
/**//// <summary>
/// OnInit事件
/// </summary>
/// <param name="e"></param>
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
設定分頁控制元件的屬性#region 設定分頁控制元件的屬性
myPager.DAL = base.dal;
myPager.ControlGrid = myGrid;
myPager.FunctionID = this.FunctionID;
myPager.SetPagerInfo();
#endregion
設定顯示資料控制元件的屬性#region 設定顯示資料控制元件的屬性
myGrid.DAL = base.dal;
myGrid.FunctionID = this.FunctionID;
#endregion
設定查詢控制元件的屬性#region 設定查詢控制元件的屬性
myFind.DAL = base.dal;
myFind.FunctionID = this.FunctionID;
myFind.SetTDColumns = 3;
#endregion
新增按鈕的事件#region 新增按鈕的事件
this.Btn_Search.Click += new EventHandler(Btn_Search_Click);
#endregion
}
查詢事件#region 查詢事件
void Btn_Search_Click(object sender, EventArgs e)
{
myPager.TableQuery = this.myFind.GetSearchWhere();
myPager.BindFirstPage();
}
#endregion
}
綜合演示的“安裝”說明,需要下載演示用的資料庫,在http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html 這裡有下載,附加到SQL Server 2000(5)裡面,然後下載綜合演示的程式,然後開啟web.congfig檔案,修改連線字串。