ASP.NETによる無秩序リストの一括操作の3つの方法のまとめ

3527 ワード

本編ではサーバ側ASPについて説明する.NETバッチ操作原生htmlタグの無秩序リストに基づく3つの方法.
方法1.li要素をhtmlコントロールにし、idを付けてFindControlメソッドを使う.
aspxコード:
 
  


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8



aspx.cs代码:
 
  
protected void Button1_Click(object sender, EventArgs e)
{
// li
for (int i = 1; i <= 8; i++)
{
HtmlGenericControl li = this.FindControl("li" + i) as HtmlGenericControl;
li.InnerHtml = " " + i.ToString();
li.Attributes.CssStyle.Value = "color:red";
}
}

方法2,ul,li要素をhtmlコントロールにし,ulコントロールのControls集合で遍歴する.
aspxコード:
 
  


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8



aspx.cs代码:
 
  
private int counter = 1;
protected void Button1_Click(object sender, EventArgs e)
{
// li
foreach (Control control in ul1.Controls)
{
if (control is HtmlGenericControl)
{
HtmlGenericControl li = control as HtmlGenericControl;
li.InnerHtml = " " + (counter++).ToString();
li.Attributes.CssStyle.Value = "color:red";
}
}
}

方法3は,HtmlAgilityPackを用いて,要素をDom方式で操作する.
aspxコード:
 
  


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8



aspx.cs代码:
 
  
protected void Button1_Click(object sender, EventArgs e)
{
// li
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(ul1.InnerHtml);
HtmlNodeCollection lis = htmlDoc.DocumentNode.SelectNodes("li");
for (int i = 0; i < lis.Count; i++)
{
lis[i].InnerHtml = " " + (i + 1).ToString();
lis[i].Attributes.Add("style", "color:red");
}
ul1.InnerHtml = htmlDoc.DocumentNode.InnerHtml;
}

以上の3つの方法はそれぞれ長所と短所があり、実際の状況に応じて選択することができる.