selectedIndex est perdu pendant les publications - ASP.NET

J'ai un contrôle de zone de liste:


<asp:ListBox runat="server" id="lbox" autoPostBack="true" />
 

Le code derrière ressemble à:


private void Page_Load(object sender, System.EventArgs e)
{
    lbox.SelectedIndexChanged+=new EventHandler(lbox_SelectedIndexChanged);
    if(!Page.IsPostBack)
    {
        LoadData();     
    }
}
private LoadData()
{
    lbox.DataSource = foo();
    lbox.DataBind();
}
protected void lboxScorecard_SelectedIndexChanged(object sender, EventArgs e)
{
    int index = (sender as ListBox).selectedIndex;
}
 

Mon problème est que lorsque ma page reçoit un message de retour (lorsqu'un utilisateur effectue une sélection dans la zone de liste), la sélection toujours "saute" sur le premier élément dans la zone de liste, de sorte que la variable d'index dans ma fonction de rappel est toujours 0.

Semble que cela peut être un viewstate problème? Comment puis-je résoudre ce problème de sorte que la sélection de l'indice reste au travers de la publication?

Il n'y a pas d'ajax se passe, c'est .NET 1.0.

Grâce.

EDIT 1 JohnIdol a réussi à me faire un pas de plus, Si je change la source de données à partir de l'original de mes DataTable à une liste de tableaux, alors que tout fonctionne correctement...ce qui serait à l'origine?

Edit 2 Il s'avère que ma DataTable avait plusieurs valeurs qui étaient les mêmes, de sorte que les indices ont été traités comme le même que tous les éléments ayant la même valeur...merci à ceux qui m'ont aidé!

  • exactement les mêmes trucs .NET 2.0 fonctionne très bien pour moi
  • heureux de voir que votre problème est résolu
InformationsquelleAutor mmattax | 2008-12-03