With this code sample you will able to know about filtering concepts and content transfer from one ListBox to another.
The example is a ASP.NET application and contains .aspx page followed by the C# code.
ASP.NET CODE:
<table>
<tr>
<td style="width: 100px">
Available Fonts</td>
<td style="width: 100px">
</td>
<td style="width: 100px">
Installed Fonts
</td>
</tr>
<tr>
<td style="width: 100px">
<asp:ListBox ID="lstAsset" runat="server" SelectionMode="Multiple" Width="100px">
<asp:ListItem>Roman</asp:ListItem>
<asp:ListItem>Arial Black</asp:ListItem>
<asp:ListItem>Garamond</asp:ListItem>
<asp:ListItem>Somona</asp:ListItem>
<asp:ListItem>Symbol</asp:ListItem>
</asp:ListBox></td>
<td align="center" style="width: 100px">
<asp:Button ID="Button3" runat="server" OnClick="AddBtn_Click" Text=">" Width="29px" /><br />
<asp:Button ID="Button2" runat="server" OnClick="RemoveBtn_Click" Text="<" Width="26px" /><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="RemoveAllBtn_Click" Text="<<" Width="30px" /><br />
<asp:Button ID="Button4" runat="server" OnClick="AddAllBtn_Click" Text=">>" Width="33px" /></td>
<td style="width: 100px">
<asp:ListBox ID="lstVendors" runat="server" SelectionMode="Multiple" Width="100px">
<asp:ListItem>Times</asp:ListItem>
<asp:ListItem>Helvetica</asp:ListItem>
<asp:ListItem>Arial</asp:ListItem>
</asp:ListBox></td>
</tr>
<tr>
<td style="width: 100px">
</td>
<td style="width: 100px">
</td>
<td style="width: 100px">
</td>
</tr>
</table>
C# CODE
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Collections;
public partial class _Default : System.Web.UI.Page
{
ArrayList lasset = new ArrayList();
ArrayList lsubordinate = new ArrayList();
static ArrayList UpdateList = new ArrayList();
protected void Page_Load(object sender, EventArgs e)
{
}
public void AddBtn_Click(Object Src, EventArgs E)
{
if (lstAsset.SelectedIndex >= 0)
{
for (int i = 0; i < lstAsset.Items.Count; i++)
{
if (lstAsset.Items[i].Selected)
{
if (!lasset.Contains(lstAsset.Items[i]))
{
lasset.Add(lstAsset.Items[i]);
}
}
}
for (int i = 0; i < lasset.Count; i++)
{
if (!lstVendors.Items.Contains(((ListItem)lasset[i])))
{
lstVendors.Items.Add(((ListItem)lasset[i]));
}
lstAsset.Items.Remove(((ListItem)lasset[i]));
}
}
}
public void AddAllBtn_Click(Object Src, EventArgs E)
{
while (lstAsset.Items.Count != 0)
{
for (int i = 0; i < lstAsset.Items.Count; i++)
{
if (!lasset.Contains(lstAsset.Items[i]))
{
lasset.Add(lstAsset.Items[i]);
}
}
for (int i = 0; i < lasset.Count; i++)
{
if (!lstVendors.Items.Contains(((ListItem)lasset[i])))
{
lstVendors.Items.Add(((ListItem)lasset[i]));
}
lstAsset.Items.Remove(((ListItem)lasset[i]));
}
}
}
public void RemoveBtn_Click(Object Src, EventArgs E)
{
if (lstVendors.SelectedItem != null)
{
for (int i = 0; i < lstVendors.Items.Count; i++)
{
if (lstVendors.Items[i].Selected)
{
if (!lsubordinate.Contains(lstVendors.Items[i]))
{
lsubordinate.Add(lstVendors.Items[i]);
}
}
}
for (int i = 0; i < lsubordinate.Count; i++)
{
if (!lstAsset.Items.Contains(((ListItem)lsubordinate[i])))
{
lstAsset.Items.Add(((ListItem)lsubordinate[i]));
}
lstVendors.Items.Remove(((ListItem)lsubordinate[i]));
UpdateList.Add(lsubordinate[i]);
}
}
}
public void RemoveAllBtn_Click(Object Src, EventArgs E)
{
while (lstVendors.Items.Count != 0)
{
for (int i = 0; i < lstVendors.Items.Count; i++)
{
if (!lsubordinate.Contains(lstVendors.Items[i]))
{
lsubordinate.Add(lstVendors.Items[i]);
}
}
for (int i = 0; i < lsubordinate.Count; i++)
{
if (!lstAsset.Items.Contains(((ListItem)lsubordinate[i])))
{
lstAsset.Items.Add(((ListItem)lsubordinate[i]));
}
lstVendors.Items.Remove(((ListItem)lsubordinate[i]));
UpdateList.Add(lsubordinate[i]);
}
}
}
}