在 HtmlTextWriter 中使用字符串数组
Using string array inside HtmlTextWriter
我正在使用 ASP.NET C# 构建 Web 应用程序。我有一个图像 url 的字符串数组。我试图在页面上显示所有这些图标。它们是从网络上检索到的 api,因此每次都不同,大约有 300 个。
我在 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
}
}
}
}
它工作得很好,但是,我在 Page_Load 方法中有一个名为 iconsList 的列表,我想在 `iconsList 之后用 string[] icons = iconsList.ToArray();
之类的内容替换行 static string[] words = { "Sam", "Dot", "Perls"};
已在 Page_Load 中设置。到目前为止,我可以调用 iconWriter.GetDivElements() 并且它将 return 正确构建 html,但仅限于给定的字符串数组。
您可以将参数添加到您的方法 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);
}
我正在使用 ASP.NET C# 构建 Web 应用程序。我有一个图像 url 的字符串数组。我试图在页面上显示所有这些图标。它们是从网络上检索到的 api,因此每次都不同,大约有 300 个。
我在 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
}
}
}
}
它工作得很好,但是,我在 Page_Load 方法中有一个名为 iconsList 的列表,我想在 `iconsList 之后用 string[] icons = iconsList.ToArray();
之类的内容替换行 static string[] words = { "Sam", "Dot", "Perls"};
已在 Page_Load 中设置。到目前为止,我可以调用 iconWriter.GetDivElements() 并且它将 return 正确构建 html,但仅限于给定的字符串数组。
您可以将参数添加到您的方法 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);
}