讓 DropDownList DataBind 不再發生錯誤

DropDownList 在執行 DataBind 動作時,若 Items 集合中不存在繫結的欄位值時會發生 Exception。不過 DropDownList 這種設計方式常會造成困擾,很多時候繫結的欄位值無法預期,而且 DropDownList 控制項在這種狀況釋出的錯誤在頁面程式碼中無法處理。

為了解決這種情形,比較快的方式就是直接改掉 DropDownList,在控制項中處理這種無法繫結的情形才是最終的解決方案。那我們該從何處下手呢?想想通常 DropDownList 控制項做資料繫結的是什麼屬性呢?沒錯,就是 SelectedValue 屬性,那我們就從覆寫 SelectedValue 屬性下手,改寫 SelectedValue 屬性的 Set 動作;當寫入 SelectedValue 屬性時的新值不存在 Items 集合中時,就直接設定其 SelectedIndex = -1。這樣就可以很簡單決解掉 DropDownList 繫結錯誤的問題了。

 

 1       Public   Class  TBDropDownList
 2           Inherits  DropDownList
 3 
 4           ' '' <summary>
 5           ' '' 覆寫 SelectedValue 屬性。
 6           ' '' </summary>
 7           Public   Overrides   Property  SelectedValue()  As   String
 8               Get
 9                   Return   MyBase .SelectedValue
10               End   Get
11               Set ( ByVal  value  As   String )
12                   Dim  oItem  As  ListItem  =   Me .Items.FindByValue(value)
13                   If  (oItem  Is   Nothing Then
14                       Me .SelectedIndex  =   - 1   ' 當 Items 不存在時 
15                   Else
16                       MyBase .SelectedValue  =  value
17                   End   If
18               End   Set
19           End Property
20 
21       End Class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值