The AsyncListBox is an AsyncWebControl that allows dynamic and static list items to be displayed to the user.
<%@ Register Assembly="AsyncControls" Namespace="DelvingWare.AsyncControls" TagPrefix="dw" %> <dw:AsyncListBox runat="server" ID="drpMain" Rows="10" OnSelectedIndexChanged="drpMain_IndexChanged"> <AsyncListItem Value="one" Text="List Item One" /> <AsyncListItem Value="two" Selected="true" Text="List Item Two" /> <AsyncListItem Value="three" Text="List Item Three" /> </dw:AsyncListBox> <dw:AsyncLabel runat="server" ID="lblMain">Change the selected item.</dw:AsyncLabel> <dw:AsyncButton runat="server" ID="btAdd" OnClick="btAdd_Click" CssClass="greyButton">Add Item</dw:AsyncButton> <dw:AsyncButton runat="server" ID="btRemove" OnClick="btRemove_Click" CssClass="greyButton">Remove Selected Item</dw:AsyncButton>
using System; using DelvingWare.AsyncControls; ... protected void Page_Load( object sender, EventArgs e ) { if ( !IsPostBack ) { // add 5 more items during page load for ( int i = 0, num = 0 ; i < 5 ; ++i ) { num = drpMain.Items.Count+1; // add the list item drpMain.Items.Add("List Item "+ num, num.ToString()); } } } protected void drpMain_IndexChanged( object sender, AsyncEventArgs ae ) { // update the label to show all selections foreach ( AsyncListItem item in drpMain.SelectedItems ) { lblMain.Text += "Selected Text: "+ item.Text + " (Value: "+ item.Value +")<br/>"; } // end FOREACH // adjust button text based on selection count if ( drpMain.SelectedItems.Length > 1 ) btRemove.Text = "Remove Selected Items!"; } protected void btAdd_Click( object sender, AsyncEventArgs ae ) { if ( drpMain.Items.Count == 20 ) { AsyncPage.Alert("This demo only allows 20 items."); return; } // end iF int itemCount = drpMain.Items.Count+1; drpMain.ClearSelection(); drpMain.Items.Add("List Item "+ itemCount, itemCount.ToString(), true); lblMain.Text = "Selected Text: "+ drpMain.LastItem.Text + " (Value: "+ drpMain.LastItem.Value +")"; } protected void btRemove_Click( object sender, AsyncEventArgs ae ) { if ( drpMain.Items.Count == 0 ) { AsyncPage.Alert("No items to remove."); return; } if ( drpMain.SelectedIndex > -1 ) { foreach( AsyncListItem item in drpMain.SelectedItems ) { drpMain.Items.Remove(item); } // end FOREACH drpMain.ClearSelection(); lblMain.Text = "No items selected."; } else AsyncPage.Alert("Please select an item to remove."); }
Imports System Imports DelvingWare.AsyncControls ... Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) If Not IsPostBack Then ' add 5 more items during page load Dim num As Integer = 0 Do While (i < 5) Loop Dim i As Integer = 0 i num = (drpMain.Items.Count + 1) ' add the list item drpMain.Items.Add(("List Item " + num), num.ToString) End If End Sub Protected Sub drpMain_IndexChanged(ByVal sender As Object, ByVal ae As AsyncEventArgs) ' update the label to show all selections For Each item As AsyncListItem In drpMain.SelectedItems lblMain.Text = (lblMain.Text + ("Selected Text: " _ + (item.Text + (" (Value: " _ + (item.Value + ")<br/>"))))) Next ' end FOREACH ' adjust button text based on selection count If (drpMain.SelectedItems.Length > 1) Then btRemove.Text = "Remove Selected Items!" End If End Sub Protected Sub btAdd_Click(ByVal sender As Object, ByVal ae As AsyncEventArgs) If (drpMain.Items.Count = 20) Then AsyncPage.Alert("This demo only allows 20 items.") Return End If ' end iF Dim itemCount As Integer = (drpMain.Items.Count + 1) drpMain.ClearSelection drpMain.Items.Add(("List Item " + itemCount), itemCount.ToString, true) lblMain.Text = ("Selected Text: " _ + (drpMain.LastItem.Text + (" (Value: " _ + (drpMain.LastItem.Value + ")")))) End Sub Protected Sub btRemove_Click(ByVal sender As Object, ByVal ae As AsyncEventArgs) If (drpMain.Items.Count = 0) Then AsyncPage.Alert("No items to remove.") Return End If If (drpMain.SelectedIndex > -1) Then For Each item As AsyncListItem In drpMain.SelectedItems drpMain.Items.Remove(item) Next ' end FOREACH drpMain.ClearSelection lblMain.Text = "No items selected." Else AsyncPage.Alert("Please select an item to remove.") End If End Sub