2017-11-04 10 views
0

私はASP.NET C#を使用してWebアプリケーションを構築しています。私はイメージURLの文字列配列を持っています。これらのアイコンをすべてページに表示しようとしています。それらはウェブAPIから検索されるので、毎回異なっており、そのうち約300個があります。HtmlTextWriter内での文字列配列の使用

この例はhttps://www.dotnetperls.com/htmltextwriterにあります。

IconWriter iconWriter = new IconWriter(); 
class IconWriter 
{ 
    static string[] words = { "Sam", "Dot", "Perls" }; 

    static string GetDivElements() 
    { 
     // Initialize StringWriter instance. 
     StringWriter stringWriter = new StringWriter(); 

     // Put HtmlTextWriter in using block because it needs to call Dispose. 
     using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) 
     { 
      // Loop over some strings. 
      foreach (var word in words) 
      { 
       // Some strings for the attributes. 
       string classValue = "ClassName"; 
       string urlValue = "http://www.dotnetperls.com/"; 
       string imageValue = "image.jpg"; 

       // The important part: 
       writer.AddAttribute(HtmlTextWriterAttribute.Class, classValue); 
       writer.RenderBeginTag(HtmlTextWriterTag.Div); // Begin #1 

       writer.AddAttribute(HtmlTextWriterAttribute.Href, urlValue); 
       writer.RenderBeginTag(HtmlTextWriterTag.A); // Begin #2 

       writer.AddAttribute(HtmlTextWriterAttribute.Src, imageValue); 
       writer.AddAttribute(HtmlTextWriterAttribute.Width, "60"); 
       writer.AddAttribute(HtmlTextWriterAttribute.Height, "60"); 
       writer.AddAttribute(HtmlTextWriterAttribute.Alt, ""); 

       writer.RenderBeginTag(HtmlTextWriterTag.Img); // Begin #3 
       writer.RenderEndTag(); // End #3 

       writer.Write(word); 

       writer.RenderEndTag(); // End #2 
       writer.RenderEndTag(); // End #1 
      } 
     } 
    } 
} 

それは完璧に動作は、しかし、私はiconsListと呼ばれるPage_Loadメソッド内のリストを持っている、と私は `iconsListは、Page_Loadの中で設定された後string[] icons = iconsList.ToArray();ようなものでラインstatic string[] words = { "Sam", "Dot", "Perls"};を交換したいです。私は今までiconWriter.GetDivElements()を呼び出すことができ、正しく構築されたhtmlを返しますが、指定された文字列配列だけを返します。

答えて

0

アイコンリスト(文字列のリスト)を受け取り、必須ではない配列を作成し、静的な文字列[]を削除するGetDivElementsにパラメータを追加できます。たとえば:

public class IconWriter 
{ 
    static string GetDivElements(List<string> iconsList) 
    { 
     string[] icons = iconsList.ToArray(); 
     // Initialize StringWriter instance. 
     StringWriter stringWriter = new StringWriter(); 
     // other stuff 
    } 
} 

はあなたのページのPage_Loadメソッドは次のようになります:

public Page_Load() 
{ 
    List<string> iconsList = GetIconsList(); 
    string html = IconWriter.GetDivElements(iconsList); 
}