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();
}
}
}