asp.net – 如何在复选框列表中隐藏未选择的项目?
发布时间:2020-12-16 09:50:37 所属栏目:asp.Net 来源:网络整理
导读:我有一个checkboxlist,它从 XML文件中获取数据.如果用户选择checkboxlist上的项目,我只想显示该项目并隐藏其他所有项目.在此之下,我想添加可点击的文字,让用户选择别的东西.因此,如果使用单击该文本,用户将再次看到复选框列表,并选择第一个项目. 基本上看起
我有一个checkboxlist,它从
XML文件中获取数据.如果用户选择checkboxlist上的项目,我只想显示该项目并隐藏其他所有项目.在此之下,我想添加可点击的文字,让用户选择别的东西.因此,如果使用单击该文本,用户将再次看到复选框列表,并选择第一个项目.
基本上看起来像这样. 非常感谢. 需要使用vb.net/和checkboxlist控件,因为我们将动态地从数据库进行数据绑定. 解决方法
这是一种方式.使用两个Panel作为两个不同CheckBoxLists的容器.第一个显示“FROM” – 项目,后者显示“TO” – 项目.
第二个小组最初是invisivle.除了CheckBoxList之外,它还包含一个LinkBut??ton来触发取消选择. 在BtnSelect上 – 单击,您将添加从第一个到第二个CheckBoxList的所选项目并显示它的面板.在BtnChangeSelection-单击您只需要切换两个面板的可见性并选择第一个项目. 这已经适用于多种选择. ASPX(CSS由您决定): <div> <asp:Panel ID="PnlChkListAcademicYear" runat="server"> <asp:CheckBoxList ID="ChkListAcademicYear" runat="server" /><br /> <asp:LinkButton ID="BtnSelect" Text="Select" runat= "server" ></asp:LinkButton> </asp:Panel> <asp:panel ID="PnlChkListAcademicYearActive" Visible="false" runat="server"> <asp:CheckBoxList ID="ChkListAcademicYearActive" Enabled="false" runat="server" /><br /> <asp:LinkButton ID="BtnChangeSelection" Text="Change selection" runat= "server" ></asp:LinkButton> </asp:panel> </div> 代码隐藏: Private Sub BtnSelect_Click(sender As Object,e As System.EventArgs) Handles BtnSelect.Click If Me.ChkListAcademicYear.SelectedIndex <> -1 Then Dim selectedItems = (From item In Me.ChkListAcademicYear.Items.Cast(Of ListItem)() Where item.Selected).ToArray Me.ChkListAcademicYearActive.Items.Clear() Me.ChkListAcademicYearActive.Items.AddRange(selectedItems) Me.PnlChkListAcademicYearActive.Visible = True Me.PnlChkListAcademicYear.Visible = False End If End Sub Private Sub BtnChangeSelection_Click(sender As Object,e As System.EventArgs) Handles BtnChangeSelection.Click Me.ChkListAcademicYear.SelectedIndex = 0 Me.PnlChkListAcademicYearActive.Visible = False Me.PnlChkListAcademicYear.Visible = True End Sub 为了完整起见,这是我的示例代码的其余部分: Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then BindCheckboxList() End If End Sub Private Sub BindCheckboxList() Me.ChkListAcademicYear.DataSource = GetData() Me.ChkListAcademicYear.DataTextField = "Year" Me.ChkListAcademicYear.DataBind() End Sub Private Function GetData() As DataTable Dim years = {"2010/2009","2009/2008","2008/2007","2007/2006","2006/2005","2005/2004","2004/2003"} Dim tbl = New DataTable tbl.Columns.Add(New DataColumn("Year")) For Each y In years tbl.Rows.Add(y) Next Return tbl End Function (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读