ASP.NET批量操作基于原生html标签的无序列表的三种方法
2023-06-13 09:15:46 时间
在网页开发中,经常要用到无序列表。事实上在符合W3C标准的div+css布局中,无序列表被大量使用,ASP.NET虽然内置了BulletedList控件,用于创建和操作无序列表,但感觉不太好用。本篇介绍服务器端ASP.NET批量操作基于原生html标签的无序列表的三种方法。
方法一,将li元素做成html控件,加上id,用FindControl方法。
aspx代码:
<formid="form1"runat="server"> <ul> <liid="li1"runat="server">初始值1</li> <liid="li2"runat="server">初始值2</li> <liid="li3"runat="server">初始值3</li> <liid="li4"runat="server">初始值4</li> <liid="li5"runat="server">初始值5</li> <liid="li6"runat="server">初始值6</li> <liid="li7"runat="server">初始值7</li> <liid="li8"runat="server">初始值8</li> </ul> <asp:ButtonID="Button1"runat="server"Text="Button"onclick="Button1_Click"/> </form>
aspx.cs代码:
protectedvoidButton1_Click(objectsender,EventArgse) { //单击按钮后批量改变li元素的内联文本值及样式 for(inti=1;i<=8;i++) { HtmlGenericControlli=this.FindControl("li"+i)asHtmlGenericControl; li.InnerHtml="新值"+i.ToString(); li.Attributes.CssStyle.Value="color:red"; } }
方法二,将ul、li元素做成html控件,用ul控件的Controls集合遍历。
aspx代码:
<formid="form1"runat="server"> <ulid="ul1"runat="server"> <lirunat="server">初始值1</li> <lirunat="server">初始值2</li> <lirunat="server">初始值3</li> <lirunat="server">初始值4</li> <lirunat="server">初始值5</li> <lirunat="server">初始值6</li> <lirunat="server">初始值7</li> <lirunat="server">初始值8</li> </ul> <asp:ButtonID="Button1"runat="server"Text="Button"OnClick="Button1_Click"/> </form>
aspx.cs代码:
privateintcounter=1; protectedvoidButton1_Click(objectsender,EventArgse) { //单击按钮后批量改变li元素的内联文本值及样式 foreach(Controlcontrolinul1.Controls) { if(controlisHtmlGenericControl) { HtmlGenericControlli=controlasHtmlGenericControl; li.InnerHtml="新值"+(counter++).ToString(); li.Attributes.CssStyle.Value="color:red"; } } }
方法三,利用HtmlAgilityPack,对元素以Dom方式操作。
aspx代码:
<formid="form1"runat="server"> <ulid="ul1"runat="server"> <li>初始值1</li> <li>初始值2</li> <li>初始值3</li> <li>初始值4</li> <li>初始值5</li> <li>初始值6</li> <li>初始值7</li> <li>初始值8</li> </ul> <asp:ButtonID="Button1"runat="server"Text="Button"OnClick="Button1_Click"/> <asp:ButtonID="Button2"runat="server"Text="测试空回发"/> </form>
aspx.cs代码:
protectedvoidButton1_Click(objectsender,EventArgse) { //单击按钮后批量改变li元素的内联文本值及样式 HtmlDocumenthtmlDoc=newHtmlDocument(); htmlDoc.LoadHtml(ul1.InnerHtml); HtmlNodeCollectionlis=htmlDoc.DocumentNode.SelectNodes("li"); for(inti=0;i<lis.Count;i++) { lis[i].InnerHtml="新值"+(i+1).ToString(); lis[i].Attributes.Add("style","color:red"); } ul1.InnerHtml=htmlDoc.DocumentNode.InnerHtml; }
以上三种方法各有优缺点,可根据实际情况选用。
相关文章
- MongoDB 使用.NET开发充分利用数据库性能(mongodb.net)
- .net让Oracle与ASP.NET实现无缝连接(oracleasp)
- ASP操作MySQL简易指南轻松删除记录(asp删除记录mysql)
- NET 与 MySQL 结合能实现优雅的数据事务处理(.net MySQL事物)
- ASP.NET:ADO.NET的DataAdapter对象
- asp.net下DataSet.WriteXml(String)与(Stream)的区别
- asp.net下Request.QueryString取不到值的解决方法
- asp.net文件上传功能(单文件,多文件,自定义生成缩略图,水印)
- asp.net(vb)实现金额转换成大写的函数
- asp.net中关于dropdwonlist无法获得值问题
- ASP.NET对无序列表批量操作的三种方法小结
- ASP.NET文件断点续传实现代码
- asp.net文件路径之获得虚拟目录的网站的根目录
- ASP.NET获取真正的客户端IP地址的6种方法
- Asp.Net各种超时问题总结
- Asp.Net无刷新文件上传并显示进度条的实现方法及思路
- 利用.net控件实现下拉导航菜单制作的具体方法
- ASP.NET中为TextBox中添加calendar.js示例代码
- asp.net导出Excel乱码的原因及解决方法
- asp.net实现md5加密
- ASP.NET中MVC从后台控制器传递数据到前台视图的方式
- asp.net实现批量删除实例
- Asp.Net使用Bulk实现批量插入数据