web-dev-qa-db-fra.com

La valeur ne se situe pas dans la plage attendue

J'utilise le code suivant pour mettre à jour une liste de sélection, cette réception d'une liste d'un service Web-

client.userKeywordsCompleted += new EventHandler<userKeywordsCompletedEventArgs>(client_userKeywordsCompleted);
client.userKeywordsAsync();

en utilisant -

void client_userKeywordsCompleted(object sender, userKeywordsCompletedEventArgs e)
    {

        string result = System.Convert.ToString(e.Result);


        for (int i = 0; i < e.Result.Count; i++)
        {

            ListBoxItem lbitem = new ListBoxItem();

            lbitem.Name = "lb_" + i;
            lbitem.Content = e.Result[i];

            lbitem.AddHandler(UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler(ListBoxItem_DoubleClickEvent), true);

            listBox1.Items.Add(lbitem);

        }

Cela fonctionne bien, car je l'utilise lors du chargement de la fenêtre Enfant. La liste contient donc la liste de la base de données. Toutefois, lorsqu'un utilisateur sélectionne l'un des éléments de la liste, il a la possibilité de le modifier. Une fois que l’édition est en place, il existe un bouton d’édition qui met à jour la colonne de la table dans la base de données. Alors, sur le clic du bouton, j'appelle à nouveau le code susmentionné pour mettre à jour la zone de liste avec les nouvelles informations d'identification. Cependant cela amène l'erreur bcak -

"Value does not fall within the expected range."

Pourquoi ne puis-je pas appeler la méthode Web en cliquant sur le bouton, car il ne fait que rafraîchir la liste de sélection ???

10
Ebikeneser

Cela peut être dû au fait que vous essayez d'ajouter un ListBoxItem avec le même nom à la page.

Si vous souhaitez actualiser le contenu de la zone de liste avec les valeurs récemment récupérées, vous devez d'abord supprimer manuellement le contenu de la zone de liste, sinon votre boucle essaiera de créer à nouveau lb_1 et de l'ajouter à la même liste.

Regardez ici pour un problème similaire qui s'est produit Silverlight: la valeur ne relève pas de l'exception de plage attendue

À votre santé,

11
Stainedart

J'ai eu pour une raison totalement différente le même avis "La valeur n'entre pas dans la plage attendue" de Visual studio 2008 en essayant d'utiliser le:.

Après avoir dépensé beaucoup, j'ai découvert que le problème était qu'il n'y avait pas de fichier de ressources et que l'outil de mise à jour cherchait le fichier .RC.

Par conséquent, la solution consiste à ajouter un fichier .RC au dossier de ressources, ce qui fonctionnera parfaitement. J'espère que cela aidera quelqu'un.

1
Chaim Gluck

Dans le cas de WSS 3.0, j'ai récemment rencontré le même problème. C'était à cause de la colonne qui a été accédé à partir du code n'était pas présent dans la liste wss.

0
CPW