-2

通常我会这样做:

List<string> list = new List<string>();
    foreach(string element in ul_myLst)
    {
        list.Add(element);
    }

但我不太确定如何,因为它没有 get 枚举器。

本质上,我只想做一些将无序列表的所有值存储到代码隐藏列表中的版本。如果这是重新发布也很抱歉,但我只发现人们将项目插入列表而不是从列表中保存项目。

4

2 回答 2

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); 
        }
}
于 2013-07-12T15:53:36.453 回答
1

您将需要一个 HTML 解析器来执行此操作。不要使用正则表达式来解析 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

于 2013-07-12T15:54:07.447 回答