$99 VS $1000+. UI Control for ASP.NET AJAX(contains chart and gridview).
ListBox Server Side Event in ASP.NET
Home > How to > ListBox Server Event

Apart from the variety of client side events that we have introduced in the other user manual, Kettic ListBox UI DLL component for ASP.NET AJAX also provide a number of commonly used server side events to help you manage and control the listbox as well as its items. With these APIs demonstrated here, users will find it has never been so easy to respond to server actions.

Supported ListBox Server Side Events

Inserting: Developers can use this server side event to easily insert a single item or multiple ones. It is fired right before the items are added.
Inserted: This server side event is fired right after the inserting event, if it has not been cancelled in time.
Reordering: This server side event is fired when developers tries to rearrange the order of listbox items. You can select a few target items first before you fire this event.
Reordered: This server side event is fired once you have reordering event is finished with your listbox items. When done, this will update the listbox items to demonstrated items with the newly arranged order.
Transferring: This server side event is fired when you are trying to transfer a single item or batches of items from a listbox. You need to select target item / items first before you proceed with this event.
Transferred: This event is fired after you have successfully transferred an item or batches of it to somewhere else, and have deleted the items in previous place.
Updated: As you can tell from the name, this server side event fires after the updating event is processed, if it is not cancelled beforehand. When this event is fired, the listbox item will be rearranged in accord with the latest user customization.
Updating: This server side event is fired when a UI developer intends to reorder / sort out the order for listbox items. This event fires right after the reordering event if it is not cancelled later on.
Deleting: Users can use this server side event for two scenarios. The first one is when you have started an item transferring event, and you can fire this deleting event to cancel that so you won't receive the listbox with updated item order. Another case is when you intend to get rid of a single item or batches of it from a listbox you can simply fire this event to delete directly.
Deleted: This server side event is fired right after the deleting event, if it has not been cancelled immediately. Similar to the deleting event, this deleted event can also be used in two situations: to cancel a transferring event which is about to be processed, and to directly delete a single or multiple item / items.

ASPX Sample for ListBox Server Side Events

<kettic:PerListBox runat="server" ID="PerListBox1" AutoPostBack="True" Width="200px"
Height="200px" OnSelectedIndexChanged="PerListBox1_SelectedIndexChanged" OnDeleted="PerListBox1_Deleted"
OnDeleting="PerListBox1_Deleting" OnInserted="PerListBox1_Inserted" OnInserting="PerListBox1_Inserting"
OnTransferred="PerListBox1_Transferred" OnTransferring="PerListBox1_Transferring"
TransferToID="PerListBox2" AllowTransfer="true" AutoPostBackOnTransfer="true"
SelectionMode="Multiple">
</kettic:PerListBox>

C# code:
protected void PerListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string message = String.Format(
"PerListBox1: SelectedIndexChanged {{ SelectedIndex: {0}, SelectedValue: {1} }}<br/>",
PerListBox1.SelectedIndex,
PerListBox1.SelectedValue);

EventLogConsole1.Text+=message;
}

private void LogEvent(object sender, string eventName, IEnumerable<PerListBoxItem> items)
{
List<string> affectedItems = new List<string>();
foreach (PerListBoxItem item in items)
{
affectedItems.Add(item.Text);
}

string message = string.Format("{0}: {1} Items:{2}<br/>",
((Kettic.ASPX.Controls.PerListBox)sender).ID,
eventName,
String.Join(", ", affectedItems.ToArray())
);
EventLogConsole1.Text += message;
}

protected void PerListBox1_Inserting(object sender, PerListBoxInsertingEventArgs e)
{
LogEvent(sender, "Inserting", e.Items);
}

protected void PerListBox1_Inserted(object sender, PerListBoxEventArgs e)
{
LogEvent(sender, "Inserted", e.Items);
}

protected void PerListBox1_Reordered(object sender, PerListBoxEventArgs e)
{
LogEvent(sender, "Reordered", e.Items);
}

protected void PerListBox1_Reordering(object sender, PerListBoxReorderingEventArgs e)
{
LogEvent(sender, "Reordering", e.Items);
}

protected void PerListBox1_Transferred(object sender, PerListBoxTransferredEventArgs e)
{
LogEvent(sender, "Transferred", e.Items);
}

protected void PerListBox1_Transferring(object sender, PerListBoxTransferringEventArgs e)
{
LogEvent(sender, "Transferring", e.Items);
}

protected void PerListBox1_Updating(object sender, PerListBoxUpdatingEventArgs e)
{
LogEvent(sender, "Updating", e.Items);
}

protected void PerListBox1_Updated(object sender, PerListBoxEventArgs e)
{
LogEvent(sender, "Updated", e.Items);
}

protected void PerListBox1_Deleted(object sender, PerListBoxEventArgs e)
{
LogEvent(sender, "Deleted", e.Items);
}

protected void PerListBox1_Deleting(object sender, PerListBoxDeletingEventArgs e)
{
LogEvent(sender, "Deleting", e.Items);
}
ASP.NET AJAX UI Controls