ASP.NETによる無秩序リストの一括操作の3つの方法のまとめ
3527 ワード
本編ではサーバ側ASPについて説明する.NETバッチ操作原生htmlタグの無秩序リストに基づく3つの方法.
方法1.li要素をhtmlコントロールにし、idを付けてFindControlメソッドを使う.
aspxコード:
aspx.cs代码:
方法2,ul,li要素をhtmlコントロールにし,ulコントロールのControls集合で遍歴する.
aspxコード:
aspx.cs代码:
方法3は,HtmlAgilityPackを用いて,要素をDom方式で操作する.
aspxコード:
aspx.cs代码:
以上の3つの方法はそれぞれ長所と短所があり、実際の状況に応じて選択することができる.
方法1.li要素をhtmlコントロールにし、idを付けてFindControlメソッドを使う.
aspxコード:
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コード:
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コード:
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つの方法はそれぞれ長所と短所があり、実際の状況に応じて選択することができる.