我是一名ASP開發人員
討論將按照下面的順序進行
在討論期間
我們在這裡創建的Web控件是一個定制的下拉選擇框
在創建Pubs Web項目後
我創建了Controls目錄存儲所有創建的控件
我將把控件命名為StoreSelector
現在就該為該控件
#code
private DataSet data;
#end code
創建向下拉列表中填寫數據的BindData功能
#code
private void BindData()
{
data = new DataSet();
SqlConnection cnn = new SqlConnection(
Catalog=pubs;Integrated Security=SSPI
SqlDataAdapter adapter = new SqlDataAdapter();
adapter
stor_address
adapter
storeList
storeList
storeList
storeList
Session
}
#end code
我在Session變量上增加了DataSet對象
#code
private void Page_Load(object sender
{
if(!Page
{
BindData();
}
}
#end code
現在我們將新控件拖到Default
很簡單是吧?下面就該是技巧比較高的部分了
#code
public class StoreSelectorCommandEventArgs
{
private string _stor_id;
private string _stor_name;
private string _stor_address;
private string _city;
private string _state;
private string _zip;
public StoreSelectorCommandEventArgs(string stor_id
string stor_address
{
_stor_id = stor_id;
_stor_name = stor_name;
_stor_address = stor_address;
_city = city;
_state = state;
_zip = zip;
}
public string stor_id{ get{ return _stor_id; } }
public string stor_name{ get{ return _stor_name; } }
public string stor_address{ get{ return _stor_address; } }
public string city{ get{ return _city; } }
public string state{ get{ return _state; } }
public string zip{ get{ return _zip; } }
}
#end code
該類的目的是為了處理定義事件參數的
#code
public delegate void StoreSelectorCommandEventHandler(object sender
StoreSelectorCommandEventArgs e);
#end code
下面是產生的文件
現在我們來調整StoreSelector控件
下面的代碼需要添加到StoreSelector控件中
#code
public event StoreSelectorCommandEventHandler StoreSelectorChanged;
protected virtual void OnStoreSelectorChanged(StoreSelectorCommandEventArgs e)
{
if(StoreSelectorChanged != null) StoreSelectorChanged(this
}
#end code
現在
下面是事件的代碼
#code
private void storeList_SelectedIndexChanged(object sender
{
data = (DataSet)Session[
OnStoreSelectorChanged(
new StoreSelectorCommandEventArgs
(data
()
data
)
data
data
data
data
)));
}
#end code
我們來分析一下在這裡所作的工作
為了訪問Default
如上圖所示
現在我們來編寫事件
美觀是Intellisense是Intellisense認可定制的EventArg類屬性的原則
最終的事件函數如下所示
#code
private void StoreSelector
sender
{
Label
Label
Label
Label
Label
Label
}
#end code
現在我們對該項目進行測試
只要我們從DropDownList中選擇另一個Store
現在我們使表單加載到第一個記錄
#Code
public int SelectedIndex
{
get{ return storeList
set
{
if(!Page
{
BindData();
}
if(value < storeList
{
storeList
OnStoreSelectorChanged(
new StoreSelectorCommandEventArgs
(data
data
data
data
data
data
}
}
}
#End Code
然後設置Default
#code
private void Page_Load(object sender
{
// 用戶初始化網頁的代碼
if(!Page
{
StoreSelector
}
}
#end code
運行該項目時
小結
希望這篇文章能夠對廣大讀者有一定的幫助
From:http://tw.wingwit.com/Article/program/net/201311/11891.html