usa i controlli server tipo <asp:ListBox <asp:Button ecc. e la vita si semplifica
poi ti gestisci il viewstate o altro come vuoi altrimenti con i controlli non server devi farti tutto a mano
nel codice c'è un mix tra eventi client ed eventi server che non so quanto ti convenga portarlo avanti