PublicFunction GetSelectedValue()Function GetSelectedValue() AsString Dim item As ListItem Dim tmpStr AsString="" ForEach item InMe.Items If item.Selected Then tmpStr &= item.Value &"," EndIf Next tmpStr = tmpStr.TrimEnd(",") Return tmpStr End Function
于是呢加了这个函数
GetSelectedValue 来获取所有的选中的项的
Value 值,用 “,”来分隔。
对应的还有
GetSelectedText //获取 所有的选中的项的
Text 值
SetSelectedByValue //通过 Value 设置 选项
SetSelectedByText //通过 Text 设置 选项
PublicSub SetSelectedByValue()Sub SetSelectedByValue(ByVal listValues AsString) Me.SelectedIndex =-1 If (listValues ="True") Then listValues ="1" EndIf If (listValues ="False") Then listValues ="0" EndIf Dim item As ListItem Dim i As Int32 =0 Dim tmpStr() AsString= listValues.Split(",") ForEach item InMe.Items For i =0To tmpStr.Length -1 If (item.Value.Equals(tmpStr(i))) Then item.Selected =True EndIf Next Next End Sub
Imports System.ComponentModel Imports System.Web.UI Imports HBS Imports System Imports System.Web.UI.WebControls Imports System.Data <ToolboxData("<{0}:HBSCheckBoxList runat=server></{0}:HBSCheckBoxList>")> _ PublicClass HBSCheckBoxListClass HBSCheckBoxList Inherits System.Web.UI.WebControls.CheckBoxList Implements IGetControlValue 实现接口#Region "实现接口" <Bindable(True), Category("默认值"), DefaultValue("210"), Description("获取控件类别")> _ ReadOnlyProperty ControlKind()Property ControlKind() AsStringImplements IGetControlValue.ControlKind Get Return"210" EndGet End Property PublicFunction GetValue()Function GetValue() AsStringImplements IGetControlValue.GetControlValue ReturnMe.GetSelectedValue End Function PublicFunction GetValue()Function GetValue(ByVal kind AsString) AsStringImplements IGetControlValue.GetControlValue Return"" End Function PublicSub SetValue()Sub SetValue(ByVal value AsString) Implements IGetControlValue.SetControlValue Me.SetSelectedByValue(value) End Sub PublicSub SetValue()Sub SetValue(ByVal value AsString, ByVal kind AsString) Implements IGetControlValue.SetControlValue End Sub #End Region 初始化 OnInit。设置CssClass、DataValueField、DataTextField、#Region "初始化 OnInit。设置CssClass、DataValueField、DataTextField、" ProtectedOverridesSub OnInit()Sub OnInit(ByVal e As EventArgs) Me.CssClass ="chk" Me.DataValueField ="ID" Me.DataTextField ="txt" Me.Font.Size = FontUnit.Point(9) End Sub #End Region '根据传入的ID设置下拉列表框的默认选项,如果没有找到,不选择,不抛出异常。 '<param name="listValue">ID值,多个话用 | 分隔</param> 函数实现 setSelectedByValue#Region "函数实现 setSelectedByValue" PublicSub SetSelectedByValue()Sub SetSelectedByValue(ByVal listValues AsString) Me.SelectedIndex =-1 If (listValues ="True") Then listValues ="1" EndIf If (listValues ="False") Then listValues ="0" EndIf Dim item As ListItem Dim i As Int32 =0 Dim tmpStr() AsString= listValues.Split(",") ForEach item InMe.Items For i =0To tmpStr.Length -1 If (item.Value.Equals(tmpStr(i))) Then item.Selected =True EndIf Next Next End Sub #End Region ' 根据传入的文本内容设置下拉列表框的默认选项,如果没有找到,选第一项,不抛出异常。 ' <param name="listValue">文本内容</param> 函数实现 SetSelectedByText#Region "函数实现 SetSelectedByText" PublicSub SetSelectedByText()Sub SetSelectedByText(ByVal listTexts AsString) Me.SelectedIndex =-1 Dim item As ListItem Dim tmpStr() AsString= listTexts.Split(",") Dim i As Int32 =0 ForEach item InMe.Items For i =0To tmpStr.Length -1 If item.Text.Equals(tmpStr(i)) Then item.Selected =True EndIf Next Next End Sub #End Region '返回选择的ID值,用 , 分隔 函数实现 GetSelectedValue#Region "函数实现 GetSelectedValue" PublicFunction GetSelectedValue()Function GetSelectedValue() AsString Dim item As ListItem Dim tmpStr AsString="" ForEach item InMe.Items If item.Selected Then tmpStr &= item.Value &"," EndIf Next tmpStr = tmpStr.TrimEnd(",") Return tmpStr End Function #End Region '返回选择的Text值,用 , 分隔 函数实现 GetSelectedText#Region "函数实现 GetSelectedText" PublicFunction GetSelectedText()Function GetSelectedText() AsString Dim item As ListItem Dim tmpStr AsString="" ForEach item InMe.Items If item.Selected Then tmpStr &= item.Text &"," EndIf Next tmpStr = tmpStr.TrimEnd(",") Return tmpStr End Function #End Region ' 传入查询语句,绑定下拉列表框。正确执行返回空字符串,不正确返回错误信息 ' <param name="sqlString">查询语句</param> ' <returns>正确执行返回空字符串,不正确返回错误信息</returns> 函数实现 bindList#Region "函数实现 bindList" PublicFunction BindListBySQL()Function BindListBySQL(ByVal sqlString AsString) Dim dal =New DataAccessLayer Me.DataSource = dal.RunSqlDataTable(sqlString) Me.DataBind() dal.Dispose() End Function #End Region 函数实现 bindList#Region "函数实现 bindList" PublicFunction BindListBySQL()Function BindListBySQL(ByVal sqlString AsString, ByVal isAddItem AsBoolean) Dim dal =New DataAccessLayer Me.DataSource = dal.RunSqlDataTable(sqlString) Me.DataBind() dal.Dispose() End Function #End Region ' 传入查询语句,绑定下拉列表框。正确执行返回空字符串,不正确返回错误信息 ' <param name="sqlString">查询语句</param> ' <returns>正确执行返回空字符串,不正确返回错误信息</returns> 函数实现 bindList#Region "函数实现 bindList" PublicFunction BindListByStore()Function BindListByStore(ByVal store AsString) AsString Dim dal AsNew DataAccessLayer Me.DataSource = dal.RunStoreDataTable(store) Me.DataBind() dal.Dispose() End Function #End Region ' 添加日期。给下拉列表框填充从 1 到 lastDay 的数据。value 和 text 值一致。 ' <param name="lastDay">最后一天</param> ' <param name="isAddDefaultItem">是否添加 “请选择”</param> 函数实现 ItemAddDate#Region "函数实现 ItemAddDate" PublicSub ItemAddDate()Sub ItemAddDate(ByVal lastDay As Int32) Dim i As Int32 For i =1To lastDay Me.Items.Add(New ListItem(i.ToString(), i.ToString())) Next End Sub #End Region ' 添加月份。给下拉列表框填充从 1 到 12 的数据。value 和 text 值一致。 ' <returns></returns> 函数实现 ItemAddMonth#Region "函数实现 ItemAddMonth" PublicSub ItemAddMonth()Sub ItemAddMonth() Dim i As Int32 For i =1To12 Me.Items.Add(New ListItem(i.ToString(), i.ToString())) Next End Sub #End Region ' 用两个字符串来添加选项。 ' <param name="texts">显示的内容,用的字符串,用“~”分开。</param> ' <param name="values">value值,用的字符串,用“~”分开。</param> 函数实现 AddItemByString#Region "函数实现 AddItemByString" PublicSub AddItemByString()Sub AddItemByString(ByVal values AsString, ByVal texts AsString) Dim strText AsString() = texts.Split("~") Dim strValue AsString() = values.Split("~") Dim i As Int32 For i =1To strText.Length Me.Items.Add(New ListItem(strText(i), strValue(i))) Next End Sub #End Region ' 用一个字符串来添加选项。value在前,Text在后 ' <param name="texts">显示的内容,用的字符串,用“~”分开。</param> 函数实现 AddItemByString#Region "函数实现 AddItemByString" PublicSub AddItemByString()Sub AddItemByString(ByVal TextsAndValues AsString) DimstrAsString() = TextsAndValues.Split("~") DimLenAs Int32 =str.Length /2 Dim i As Int32 For i =0ToLen-1 Me.Items.Add(New ListItem(str(Len+ i), str(i))) Next End Sub #End Region ' 用两个数组来添加选项。 ' <param name="texts">显示的内容。</param> ' <param name="values">value值。</param> 函数实现 AddItemByArray#Region "函数实现 AddItemByArray" PublicSub AddItemByArray()Sub AddItemByArray(ByVal values AsString(), ByVal texts AsString()) Dim i As Int32 For i =0To texts.Length Me.Items.Add(New ListItem(texts(i), values(i))) Next End Sub #End Region ' 用一个数组来添加选项。values在前,Text在后 ' <param name="texts">显示的内容,用的字符串,用“~”分开。</param> ' <returns></returns> 函数实现 AddItemByArray#Region "函数实现 AddItemByArray" PublicSub AddItemByArray()Sub AddItemByArray(ByVal ValuesAndTexts AsString()) DimlenAs Int32 = ValuesAndTexts.Length /2 Dim i As Int32 For i =0Tolen Me.Items.Add(New ListItem(ValuesAndTexts(len+ i), ValuesAndTexts(i))) Next End Sub #End Region 函数实现 AddItemByArrayTwo#Region "函数实现 AddItemByArrayTwo" PublicSub AddItemByArrayTwo()Sub AddItemByArrayTwo(ByVal ValuesAndTexts AsString(,)) DimlenAs Int32 = ValuesAndTexts.Length /2-1 Dim i As Int32 For i =0Tolen Me.Items.Add(New ListItem(ValuesAndTexts(i, 1), ValuesAndTexts(i, 0))) Next End Sub #End Region End Class