I am building a web application using ASP.NET C#. I have a string array of image urls. I am trying to display all of these icons on the page. They are retrieved from a web api so they are different every time and there are about 300 of them.
I found this example on 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
}
}
}
}
It works perfectly, however, I have a list inside the Page_Load method called iconsList, and I want to replace the line static string[] words = { "Sam", "Dot", "Perls"};
with something like string[] icons = iconsList.ToArray();
after the `iconsList has been set in Page_Load. I can so far call iconWriter.GetDivElements() and it will return the correctly built html, but only with the given string array.