2010-10-22 2 views
3

Вчера я получил некоторую помощь о получении индекса коллекции. Вот код, который я использую.не может преобразовать строку в char

  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(); 

Что я хочу сделать, это получить индекс элемента в коллекции после productpage_rec.

Так, например, первый продукт будет генерировать как

mboxCreate («product_productpage_rec1»

и так далее, и так далее для каждого продукта в коллекции. Когда я пытаюсь построить я получаю follwong ошибка:

"не может конвертировать из строки на символ"

Его подножки на product_productpage_rec {0}

Что мне не хватает?

Заранее спасибо.

+0

Вы пытались использовать 'StringBuilder.Append (Char, Int32)' перегрузка http://bit.ly/cGh8ud, поэтому вы получаете эту ошибку. Компилятор считает, что лучше всего использовать перегрузку вместо 'Append (String, Int32)' –

ответ

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

должен работать

+0

ahh спасибо! он сделал. Я отвечу как ответ, как только это позволит мне. Еще раз спасибо, знал, что это что-то маленькое. – tking

+0

@tking - отлично, спасибо –

3

Изменить этот

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

к этому:

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

Вы должны использовать

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

Ничего ... избили его лучшими ответами. –

+0

Ваш ответ выглядел знакомым! lol – MattC

+0

Хм, почему нисходящий? Это не лучший ответ, но он не является явно ошибочным. –

Смежные вопросы