2010-10-22 5 views
3

J'ai reçu de l'aide hier soir pour obtenir l'index d'une collection. Voici le code que j'utilise.impossible de convertir la chaîne en caractère

  System.Text.StringBuilder sb = new System.Text.StringBuilder(); 

      for (int i = 1; i < _prod.ActiveProductItemCollection.Count; i++) 
      { 

       sb.Append("<script type='text/javascript'>"); 
       sb.Append("mboxCreate(\"product_productpage_rec{0}\")", i); 
       sb.Append("\"entity.id=" + _prodID + "\","); 
       sb.Append("\"entity.categoryId=" + _categoryID + "\","); 
       sb.Append("\"entity.name=" + _prod.ActiveProductItemCollection[i].Title + "\","); 
       sb.Append("\"entity.pageURL=" + Request.Url.ToString() + "\","); 
       //The following value has been taken from the productImageControl code behind. 
       //Might have to refactor in future as a property of the image control. 
       string filename = AppSettingsManager.Current.ProductImagePathLarge + _prod.ActiveProductItemCollection[i].Sku 
        + AppSettingsManager.Current.ProductImageExtension; 
       sb.Append("\"entity.thumbnailURL=" + filename + "\","); 
       sb.Append("\"entity.inventory=" + _prod.ActiveProductItemCollection.Count + "\","); 
       sb.Append("\"entity.value=" + _prod.ActiveProductItemCollection[i].ActualPrice + "\","); 
       sb.Append("\"entity.ProductItemID=" + _prod.ActiveProductItemCollection[i].Sku + "\","); 
       sb.Append("\"entity.addToCartImg=~/Images/Buttons/btn_AddToCartFlat.gif\");<"); 
       //The last line has to be /script. < inserted on prev line. do not change it or bad things will happen.    
       sb.Append("/script>"); 
      } 
      this.LiteralMBoxScript.Text = sb.ToString(); 

Ce que je veux faire est obtenir l'index de l'article dans la collection après productpage_rec.

Ainsi, par exemple, le premier produit générerait comme

mboxCreate (« product_productpage_rec1 »

et ainsi de suite et ainsi de suite pour chaque produit dans la collection. Lorsque je tente de construire je reçois le follwong erreur:

"ne peut pas convertir chaîne en char"

Son déclenchement sur la product_productpage_rec {0}

Qu'est-ce qui me manque?

Merci d'avance.

+0

Vous avez essayé d'utiliser 'StringBuilder.Append (Char, Int32)' http://bit.ly/cGh8ud surcharge c'est pourquoi vous obtenez cette erreur. Compilateur pense que sa meilleure surcharge à utiliser à la place 'Append (String, Int32)' –

Répondre

6
sb.AppendFormat("mboxCreate(\"product_productpage_rec{0}\")", i); 

devrait fonctionner

+0

ahh merci! ça faisait. Je vais marquer comme répondu dès que cela me permet. Merci encore, je savais que c'était quelque chose de petit comme ça. – tking

+0

@tking - super, merci –

3

Modifier cette

sb.Append("mboxCreate(\"product_productpage_rec{0}\")", i); 

à ceci:

sb.AppendFormat("mboxCreate(\"product_productpage_rec{0}\")", i); 
0

Vous devez utiliser

sb.Append(String.Format("mboxCreate(\"product_productpage_rec{0}\")", i)); 
+0

Peu importe ... battu avec de meilleures réponses. –

+0

Votre réponse m'a semblé familier! lol – MattC

+0

Hmm pourquoi la downvote? Ce n'est pas la meilleure réponse, mais ce n'est pas une erreur flagrante. –