两个listbox之间的互换(自定义控件)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace MaesInfoComposite
{

    //public delegate void CheckEventHandler(object sender, CheckEventArgs ce);
    [DefaultProperty("Text"),
      ToolboxData("<{0}:MaesInfoComposite runat=server></{0}:MaesInfoComposite>")]
    public class MaesInfoComposite : WebControl, INamingContainer
    {
        private ImageButton m_btnAddText;
        private ImageButton m_btnAddAll;
        private ImageButton m_btnRemoveText;
        private ImageButton m_btnRemoveAll;
        private ListBox m_lstAvailableItems;
        private ListBox m_lstSelectedItems;
        public override ControlCollection Controls
        {
            get
            {
                EnsureChildControls();
                return base.Controls;

            }

        }

    
        [Bindable(true)]
        [Category("Appearance")]
        [DefaultValue("")]
        [Localizable(true)]

        public string Text
        {
            get
            {
                EnsureChildControls();
                String s = (String)ViewState["Text"];
                return ((s == null) ? String.Empty : s);
            }

            set
            {
                ViewState["Text"] = value;
            }
        }
        //add
        public string ButtonAddTextImageUrl
        {
            get
            {
                EnsureChildControls();
                return m_btnAddText.ImageUrl;
            }
            set
            {
                ViewState["ButtonAddTextImageUrl"] = value;
            }
        }
        public string ButtonAddAllImageUrl
        {
            get
            {
                EnsureChildControls();
                return m_btnAddAll.ImageUrl;
            }
            set
            {
                ViewState["ButtonAddAllImageUrl"] = value;
            }
        }
        public string ButtonRemoveTextImageUrl
        {
            get
            {
                EnsureChildControls();
                return m_btnRemoveText.ImageUrl;
            }
            set
            {
                ViewState["ButtonRemoveTextImageUrl"] = value;
            }
        }
        public string ButtonRemoveAllImageUrl
        {
            get
            {
                EnsureChildControls();
                return m_btnRemoveAll.ImageUrl;
            }
            set
            {
                ViewState["ButtonRemoveAllImageUrl"] = value;
            }
        }
        public string ListBoxLeftCss
        {
            get
            {
                EnsureChildControls();
                return ListBoxAvailableItems.CssClass;
            }
            set
            {
                ViewState["ListBoxLeftCss"] = value;
            }
        }
        public string ListBoxRightCss
        {
            get
            {
                EnsureChildControls();
                return ListBoxSelectedItems.CssClass;
            }
            set
            {
                ViewState["ListBoxRightCss"] = value;
            }
        }
        //end add
        public virtual ListBox ListBoxAvailableItems
        {
            get
            {
                EnsureChildControls();
                return m_lstAvailableItems;
            }
        }
        public virtual ListBox ListBoxSelectedItems
        {
            get
            {
                EnsureChildControls();
                return m_lstSelectedItems;
            }
        }
   

        protected override void CreateChildControls()
        {
            EnsureChildControls();
            Controls.Clear();
            m_lstAvailableItems = new ListBox();
  
            m_lstSelectedItems = new ListBox();
 
            m_btnAddAll = new ImageButton();
            //m_btnAddAll.ImageUrl = ViewState["Button1ImageUrl"].ToString();
            m_btnAddAll.Click += new ImageClickEventHandler(m_btnAddAll_Click);
            m_btnAddText = new ImageButton();
            m_btnAddText.Click += new ImageClickEventHandler(m_btnAddText_Click);
            m_btnRemoveText = new ImageButton();
            m_btnRemoveText.Click += new ImageClickEventHandler(m_btnRemoveText_Click);
            m_btnRemoveAll = new ImageButton();
            m_btnRemoveAll.Click += new ImageClickEventHandler(m_btnRemoveAll_Click);
            m_btnAddAll.Width = Unit.Parse("27px");
            m_btnAddAll.Height = Unit.Parse("27px");

            m_btnAddText.Width = Unit.Parse("27px");
            m_btnAddText.Height = Unit.Parse("27px");

            m_btnRemoveText.Width = Unit.Parse("27px");
            m_btnRemoveText.Height = Unit.Parse("27px");

            m_btnRemoveAll.Width = Unit.Parse("27px");
            m_btnRemoveAll.Height = Unit.Parse("27px");

            this.Controls.Add(m_btnAddAll);
            this.Controls.Add(m_btnAddText);
            this.Controls.Add(m_btnRemoveText);
            this.Controls.Add(m_btnRemoveAll);
            this.Controls.Add(m_lstAvailableItems);
            this.Controls.Add(m_lstSelectedItems);

        }
        private void m_btnAddText_Click(Object sender, ImageClickEventArgs e)
        {
   
            if (m_lstAvailableItems.Items.Count > 0)
            {
                if (m_lstSelectedItems.Items.Count > 0)
                {
                    for (int i = 0; i < m_lstSelectedItems.Items.Count; i++)
                    {
                        if (m_lstSelectedItems.Items[i].Selected == true)
                        {
                            m_lstSelectedItems.Items[i].Selected = false;
                        }
                    }

                }

                    int n = 0;
                    while (n < m_lstAvailableItems.Items.Count)
                    {
                        if (m_lstAvailableItems.Items[n].Selected == true)
                        {
                            m_lstSelectedItems.Items.Add(m_lstAvailableItems.Items[n]);
                            m_lstAvailableItems.Items.Remove(m_lstAvailableItems.Items[n]);
                        }
                        else
                            n += 1;
                    }
               

 

            }
            else
            {

            }

        }
        private void m_btnRemoveText_Click(Object sender, ImageClickEventArgs e)
        {

            if (m_lstSelectedItems.Items.Count > 0)
            {
                if (m_lstAvailableItems.Items.Count > 0)
                {
                    for (int n = 0; n < m_lstAvailableItems.Items.Count; n++)
                    {
                        if (m_lstAvailableItems.Items[n].Selected == true)
                        {
                            m_lstAvailableItems.Items[n].Selected = false;
                        }
                    }

                }
                int i = 0;
                while (i < m_lstSelectedItems.Items.Count)
                {
                    if (m_lstSelectedItems.Items[i].Selected == true)
                    {
                        m_lstAvailableItems.Items.Add(m_lstSelectedItems.Items[i]);
                        m_lstSelectedItems.Items.Remove(m_lstSelectedItems.Items[i]);
                    }
                    else
                        i += 1;
                }

            }
            else
            {

            }

        }
        private void m_btnRemoveAll_Click(Object sender, ImageClickEventArgs e)
        {

            if (m_lstSelectedItems.Items.Count > 0)
            {
                if (m_lstAvailableItems.Items.Count > 0)
                {
                    for (int n = 0; n < m_lstAvailableItems.Items.Count; n++)
                    {
                        if (m_lstAvailableItems.Items[n].Selected == true)
                        {
                            m_lstAvailableItems.Items[n].Selected = false;
                        }
                    }

                }

                int i = 0;
                while (i < m_lstSelectedItems.Items.Count)
                {


                       m_lstAvailableItems.Items.Add(m_lstSelectedItems.Items[i]);
                    
                   
                   
                        i += 1;
                }


                m_lstSelectedItems.Items.Clear();

            }
            else
            {


            }
        
        }
        private void m_btnAddAll_Click(Object sender, ImageClickEventArgs e)
        {

            if (m_lstAvailableItems.Items.Count > 0)
            {
                if (m_lstAvailableItems.Items.Count > 0)
                {
                    if (m_lstSelectedItems.Items.Count > 0)
                    {
                        for (int i = 0; i < m_lstSelectedItems.Items.Count; i++)
                        {
                            if (m_lstSelectedItems.Items[i].Selected == true)
                            {
                                m_lstSelectedItems.Items[i].Selected = false;
                            }
                        }

                    }

                    int n = 0;
                    while (n< m_lstAvailableItems.Items.Count)
                    {


                        m_lstSelectedItems.Items.Add(m_lstAvailableItems.Items[n]);

 

                        n += 1;
                    }

                    m_lstAvailableItems.Items.Clear();


                }
                else
                {

                }

            }
        }

        protected override void Render(HtmlTextWriter writer)
        {
            AddAttributesToRender(writer);
            //writer.AddAttribute(HtmlTextWriterAttribute);
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            //add
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ver11");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.Write("Available");

            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

 

            writer.RenderEndTag();
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ver11");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.Write("Selected");

            writer.RenderEndTag();
            writer.RenderEndTag();
            //add
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            m_lstAvailableItems.RenderControl(writer);
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
         
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
           
            m_btnAddAll.RenderControl(writer);
         
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.AddAttribute(HtmlTextWriterAttribute.Height, "30px");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
          
          
    
            m_btnAddText.RenderControl(writer);
          
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.AddAttribute(HtmlTextWriterAttribute.Height, "30px");

            writer.RenderBeginTag(HtmlTextWriterTag.Td);
         
           
            m_btnRemoveAll.RenderControl(writer);
         
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.AddAttribute(HtmlTextWriterAttribute.Height, "30px");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
          
            m_btnRemoveText.RenderControl(writer);
            writer.RenderEndTag();
        
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            m_lstSelectedItems.RenderControl(writer);
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();

        }

        protected override void OnPreRender(EventArgs e)
        {
            ((ImageButton)Controls[0]).ImageUrl = ViewState["ButtonAddAllImageUrl"].ToString();

            ((ImageButton)Controls[1]).ImageUrl = ViewState["ButtonAddTextImageUrl"].ToString();
            ((ImageButton)Controls[2]).ImageUrl = ViewState["ButtonRemoveAllImageUrl"].ToString();
            ((ImageButton)Controls[3]).ImageUrl = ViewState["ButtonRemoveTextImageUrl"].ToString();
            ((ListBox)Controls[4]).CssClass = ViewState["ListBoxRightCss"].ToString();
            ((ListBox)Controls[5]).CssClass = ViewState["ListBoxLeftCss"].ToString();


        }
 }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值