zoukankan      html  css  js  c++  java
  • [自定义服务器控件] 第三步:CheckBoxList。

    前面发了文本框下拉列表框的,这回发一个CheckBoxList。不知道中文名字该叫什么。

    CheckBoxList 最郁闷的地方就是:明明可以选择多个选项,但是 SelectedValue 只能得到第一个选项,其他被选中的还得另想办法。
    不知道vs2005 有没有改进,至少 vs2003 是这样的。

     Public Function GetSelectedValue() As String
            
    Dim item As ListItem
            
    Dim tmpStr As String = ""
            
    For Each item In Me.Items
                
    If item.Selected Then
                    tmpStr 
    &= item.Value & ","
                
    End If
            
    Next
            tmpStr 
    = tmpStr.TrimEnd(",")
            
    Return tmpStr
        
    End Function

    于是呢加了这个函数GetSelectedValue 来获取所有的选中的项的Value 值,用 “,”来分隔。
    对应的还有

    GetSelectedText       //获取 所有的选中的项的Text
    SetSelectedByValue  //通过 Value 设置 选项
    SetSelectedByText   //通过 Text  设置 选项

    Public Sub SetSelectedByValue(ByVal listValues As String)

            
    Me.SelectedIndex = -1
            
    If (listValues = "True"Then
                listValues 
    = "1"
            
    End If
            
    If (listValues = "False"Then
                listValues 
    = "0"
            
    End If
            
    Dim item As ListItem
            
    Dim i As Int32 = 0
            
    Dim tmpStr() As String = listValues.Split(",")
            
    For Each item In Me.Items
                
    For i = 0 To tmpStr.Length - 1
                    
    If (item.Value.Equals(tmpStr(i))) Then
                        item.Selected 
    = True
                    
    End If
                
    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>")> _
     
    Public Class HBSCheckBoxList
        
    Inherits System.Web.UI.WebControls.CheckBoxList
        
    Implements IGetControlValue

    实现接口


    初始化 OnInit。设置CssClass、DataValueField、DataTextField、

        
    '根据传入的ID设置下拉列表框的默认选项,如果没有找到,不选择,不抛出异常。
        '<param name="listValue">ID值,多个话用 | 分隔</param>
    函数实现  setSelectedByValue

        
    ' 根据传入的文本内容设置下拉列表框的默认选项,如果没有找到,选第一项,不抛出异常。
        ' <param name="listValue">文本内容</param>
    函数实现  SetSelectedByText


        
    '返回选择的ID值,用 , 分隔
    函数实现  GetSelectedValue

        
    '返回选择的Text值,用 , 分隔
    函数实现  GetSelectedText


        
    ' 传入查询语句,绑定下拉列表框。正确执行返回空字符串,不正确返回错误信息
        ' <param name="sqlString">查询语句</param>
        ' <returns>正确执行返回空字符串,不正确返回错误信息</returns>
    函数实现  bindList

    函数实现  bindList


        
    ' 传入查询语句,绑定下拉列表框。正确执行返回空字符串,不正确返回错误信息
        ' <param name="sqlString">查询语句</param>
        ' <returns>正确执行返回空字符串,不正确返回错误信息</returns>
    函数实现  bindList


        
    ' 添加日期。给下拉列表框填充从 1 到 lastDay 的数据。value 和 text 值一致。
        ' <param name="lastDay">最后一天</param>
        ' <param name="isAddDefaultItem">是否添加 “请选择”</param>
    函数实现  ItemAddDate

        
    ' 添加月份。给下拉列表框填充从 1 到 12 的数据。value 和 text 值一致。
        ' <returns></returns>
    函数实现  ItemAddMonth

        
    ' 用两个字符串来添加选项。
        ' <param name="texts">显示的内容,用的字符串,用“~”分开。</param>
        ' <param name="values">value值,用的字符串,用“~”分开。</param>
    函数实现  AddItemByString

        
    ' 用一个字符串来添加选项。value在前,Text在后
        ' <param name="texts">显示的内容,用的字符串,用“~”分开。</param>
    函数实现  AddItemByString

        
    ' 用两个数组来添加选项。
        ' <param name="texts">显示的内容。</param>
        ' <param name="values">value值。</param>
    函数实现  AddItemByArray

        
    ' 用一个数组来添加选项。values在前,Text在后
        ' <param name="texts">显示的内容,用的字符串,用“~”分开。</param>
        ' <returns></returns>
    函数实现  AddItemByArray

    函数实现  AddItemByArrayTwo
    End Class

  • 相关阅读:
    大二第二学期周学习进度总结(十三)
    java课程之团队开发冲刺阶段2.5
    java课程之团队开发冲刺阶段2.4
    java课程课后作业190530之用户体验评价
    java课程课后作业190530之找水王
    java课程之团队开发冲刺阶段2.3
    python运算学习之Numpy ------ 认识数组、数组的创建
    安装 jdk
    公司想辞退的你六种表现,你get到了么?
    性能测试基础知识系统学习之相关术语
  • 原文地址:https://www.cnblogs.com/jyk/p/1082805.html
Copyright © 2011-2022 走看看