通常我会这样做:
List<string> list = new List<string>();
foreach(string element in ul_myLst)
{
list.Add(element);
}
但我不确定如何,因为它没有得到枚举器。
基本上我只是想做一些版本,将未排序列表的所有值存储到代码隐藏中的列表中。如果这是重新发布,也很抱歉,但我只发现人们将项目插入列表而不保存列表中的项目。
答案 0 :(得分:1)
这样的事情对你有用吗?
HTML:
<ul runat="server" id="ul_myLst">
<li runat=server>item1</li>
<li runat=server>item2</li>
<li runat=server>item3</li>
</ul>
代码背后的代码:
List<string> ListOfStuff = new List<string>();
foreach (Control item in ul_myLst.Controls)
{
if (item is System.Web.UI.HtmlControls.HtmlGenericControl)
{
ListOfStuff.Add(((System.Web.UI.HtmlControls.HtmlGenericControl)item).InnerHtml);
}
}
答案 1 :(得分:1)
您需要一个HTML解析器才能执行此操作。 Dont use a regex to parse HTML
您可以使用HtmlAgilityPack。
标记:
<ul id="ul_myLst" runat="server">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
代码背后:
HtmlGenericControl ul_myLst = (HtmlGenericControl)this.Page.FindControl("ul_myLst");
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(ul_myLst.InnerHtml);
List<string> result = doc.DocumentNode.SelectNodes("li").Select(x => x.InnerText).ToList();
这会为您提供一个包含以下内容的列表:
1 2 3 4 5