Listbox no asp.net não está recebendo itens selecionados

Eu tenho vários dropdown & listbox na minha página da web.

Estou tentando obter uma lista deCategoryID a partir de umlstCatID Eu sou capaz de preencher a caixa de listagem com o nome da categoria.

Se eu lembro corretamente na primeira tentativa meu código funcionou bem, depois que eu fiz algumas alterações, em seguida, afirmou sempre obter o primeiro item selecionado x No. of time

<asp:ListBox ID="lstCatID" runat="server" DataTextField="CategoryName" 
                DataValueField="CategoryID" SelectionMode="Multiple" CssClass="lstListBox">
 </asp:ListBox>



protected void Button1_Click(object sender, EventArgs e)
{
    string CatID = string.Empty;
    foreach (ListItem li in lstCatID.Items)
    {
        if (li.Selected == true)
        {
           // Response.Write();
            CatID += lstCatID.SelectedItem.Value + ",";
        }
    }
    Response.Write(CatID);
}

Não tenho certeza do que está dando errado. Eu verifiquei o MSDN, ele mostra exatamente a mesma maneira de fazê-lo.

Pode ser que eu esteja fazendo algo errado.

Apenas para adicionar usando o firefox eu sou capaz de ver vários valores selecionados que selecionaram a propriedade.

<option value="3" selected="selected">One</option>
<option value="2">Two</option>
<option value="29" selected="selected">Three</option>
<option value="25" selected="selected">Four</option>
<option value="22" >Five</option>

Minha saída neste caso será3,3,3

Eu apreciaria a ajuda nesse sentido

questionAnswers(4)

yourAnswerToTheQuestion