none
asp:ListBox如何实现全部选中 RRS feed

  • 问题

  • 页面上有一个全选的CheckBox,和asp:ListBox。当选中CheckBox后,如何能够自动实现asp:ListBox中全部选中。
    2009年5月21日 5:46

答案

  • --------------------------------------------------------------------
    HTML
    --------------------------------------------------------------------
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="X200905211358.aspx.cs" Inherits="HTML_CSS_JAVASCRIPT_X200905211358" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ListBox ID="ListBox1" runat="server" Width="110px">
                <asp:ListItem>1</asp:ListItem>
                <asp:ListItem>2</asp:ListItem>
                <asp:ListItem>3</asp:ListItem>
                <asp:ListItem>4</asp:ListItem>
            </asp:ListBox><br />
            <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" 
                oncheckedchanged="CheckBox1_CheckedChanged" Text="全选" />
        </div>
        </form>
    </body>
    </html>
    
    
    --------------------------------------------------------------------
    CS
    --------------------------------------------------------------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class HTML_CSS_JAVASCRIPT_X200905211358 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (ListBox1.SelectionMode != ListSelectionMode.Multiple)
                ListBox1.SelectionMode = ListSelectionMode.Multiple;
            foreach (ListItem fListItem in this.ListBox1.Items)
                fListItem.Selected = CheckBox1.Checked;
        }
    }
    
    


    知识改变命运,奋斗成就人生!
    2009年5月21日 6:36
    版主

全部回复

  • 你好!
         你把ListBox的SelectionMode属性设置为Mutiple,然后把每一项都选中就可以了!
    周雪峰
    2009年5月21日 6:19
    版主
  • listbox1.SelecttionMode = ListSelectionMode.Multiple;
    for(int i = 0;i < listbox1.Items.Count;i++){
        listbox1.SelectedIndex = i;
    }

    我这样做了可是还是不行啊。

    2009年5月21日 6:26
  • --------------------------------------------------------------------
    HTML
    --------------------------------------------------------------------
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="X200905211358.aspx.cs" Inherits="HTML_CSS_JAVASCRIPT_X200905211358" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ListBox ID="ListBox1" runat="server" Width="110px">
                <asp:ListItem>1</asp:ListItem>
                <asp:ListItem>2</asp:ListItem>
                <asp:ListItem>3</asp:ListItem>
                <asp:ListItem>4</asp:ListItem>
            </asp:ListBox><br />
            <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" 
                oncheckedchanged="CheckBox1_CheckedChanged" Text="全选" />
        </div>
        </form>
    </body>
    </html>
    
    
    --------------------------------------------------------------------
    CS
    --------------------------------------------------------------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class HTML_CSS_JAVASCRIPT_X200905211358 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (ListBox1.SelectionMode != ListSelectionMode.Multiple)
                ListBox1.SelectionMode = ListSelectionMode.Multiple;
            foreach (ListItem fListItem in this.ListBox1.Items)
                fListItem.Selected = CheckBox1.Checked;
        }
    }
    
    


    知识改变命运,奋斗成就人生!
    2009年5月21日 6:36
    版主
  • CheckBox 的 AutoPostBack 要设为 True 才行
    知识改变命运,奋斗成就人生!
    2009年5月21日 6:37
    版主
  • 感谢您了!行了。
    2009年5月21日 6:48
  • 尝试向SelectedItems中添加项看看~
    2009年5月21日 7:04