ASP.Net Web Form C# -- ListBox

ListBox單選、複選(類購物清單)

Step 1. 加入兩個ListBox

SelectionMode屬性改為Multiple

Step 2. 以code建立ListBox1(在此命名為a)選項,目的ListBox名為b
protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                a.Items.Add(new ListItem("a", "a"));
                a.Items.Add(new ListItem("b", "b"));
                a.Items.Add(new ListItem("c", "c"));
                a.Items.Add(new ListItem("d", "d"));
                a.Items.Add(new ListItem("e", "e"));
            }
        }
Step 3. 加入四個Button (加入一個、加入全部、移除一個、移除全部)
protected void Button1_Click(object sender, EventArgs e)
        {
            //將選項加入至右邊
            for(int i = 0; i <a.Items.Count; i++)
            {
                if(a.Items[i].Selected == true)
                {
                    b.Items.Add(a.Items[i].Text);
                    a.Items[i].Enabled = false;
                }
            }

            //將加入右邊之選項從左邊ListBox中刪除
            for(int i = a.Items.Count-1; i>=0; i--)
            {
                if(a.Items[i].Enabled == false)
                {
                    a.Items.RemoveAt(i);
                }
            }
        }
//所有項目移至右邊
        protected void Button3_Click(object sender, EventArgs e)
        {
            if(a.Items.Count > 0)
            {
                for(int i =0; i<a.Items.Count-1; i++ )
                {
                    b.Items.Add(a.Items[i]);
                }
            }

            a.Items.Clear(); //清除所有左邊項目
        }
protected void Button4_Click(object sender, EventArgs e)
        {
            //將選項加入至左邊
            for (int i = 0; i < b.Items.Count; i++)
            {
                if (b.Items[i].Selected == true)
                {
                    a.Items.Add(b.Items[i].Text);
                    b.Items[i].Enabled = false;
                }
            }

            //將加入左邊之選項從右邊ListBox中刪除
            for (int i = b.Items.Count - 1; i >= 0; i--)
            {
                if (b.Items[i].Enabled == false)
                {
                    b.Items.RemoveAt(i);
                }
            }
        }
//所有項目移至左邊
        protected void Button2_Click(object sender, EventArgs e)
        {
            if (b.Items.Count > 0)
            {
                for (int i = 0; i < b.Items.Count - 1; i++)
                {
                    a.Items.Add(b.Items[i]);
                }
            }

            b.Items.Clear(); //清除所有右邊項目
        }
//顯示最後移至右邊之選項
        protected void Button5_Click(object sender, EventArgs e)
        {
            if(b.Items.Count > 0 )
            {
                int i = 1;
                foreach(ListItem item in b.Items)
                {
                    cTXT.Text += string.Format("{0:00}.{1}</br>", i, item.Text);
                    i++;
                }
            }
            else
            {
                Response.Write("<script>alert('尚未選擇任何選項')</script>");
            }
        }