I think you made a small "error" in you code. Below working example Aspx page (pay attention to SelectionMode, which you did not set):
<cc1:MultiSelector ID="txtUsers" AutoPostBack="true" SelectionMode="Multiple" runat="server" CssClass="select" OnSelectedIndexChanged="txtUsers_SelectedIndexChanged"></cc1:MultiSelector
>
Code behind:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
for (var i = 0; i < 10; i++)
{
txtUsers.Items.Add(new ListItem { Value = i.ToString(), Text = "option1 " + i.ToString() });
}
}
}
public void txtUsers_SelectedIndexChanged(object sender, System.EventArgs e)
{
foreach (ListItem item in txtUsers.Items)
{
if(item.Selected)
Debug.WriteLine(item);
}
Debug.Write(e);
}
BTW: you can write following JavaScript to be sure that proper option is selected.
$(function () {
$('select').change(function (evt) {
if (evt.added) {
$(evt.target).find("option[value=" + evt.added.id + "]").attr("selected", "selected");
}
if (evt.removed) {
$(evt.target).find("option[value=" + evt.removed.id + "]").removeAttr("selected");
}
});
});