为DropDownList 添加optgroup分组以及为ListItem 加式样
先写一个类库文件(对原文件做了修改),如下:
/// <summary>
/// 冯东耀修改于2008-11-21
/// </summary>
public class NewDropDownList : DropDownList
{
//构造函数
public NewDropDownList(DataTable dt)
{
ListItem item = new ListItem();
foreach (DataRow row in dt.Rows)
{
item.Value = row[0].ToString();
item.Text = row[1].ToString();
if (row[3].ToString() == "0")
item.Attributes.Add("optgroup", item.Text);
Items.Add(item);
}
}
//重写方法
protected override void RenderContents(HtmlTextWriter writer)
{
string optgroup;
ArrayList optOptionGroups = new ArrayList();
foreach (ListItem item in this.Items)
{
if (item.Attributes["optgroup"] == null)
{
RenderListItem(item, writer);
}
else
{
optgroup = item.Attributes["optgroup"];
if (optOptionGroups.Contains(optgroup))
{
RenderListItem(item, writer);
}
else
{
if (optOptionGroups.Count > 0)
{
optgroupEndTag(writer);
}
optgroupBeginTag(optgroup, writer);
optOptionGroups.Add(optgroup);
}
}
}
if (optOptionGroups.Count > 0)
{
optgroupEndTag(writer);
}
}
//option 简单添加style
private void RenderListItem(ListItem item, HtmlTextWriter writer)
{
writer.WriteBeginTag("option");
writer.WriteAttribute("value", item.Value, true);
//writer.WriteAttribute("style", "color:#7395c1", true);//此处可以更改选项的字体颜色
if (item.Selected)
{
writer.WriteAttribute("selected", "selected", false);
}
foreach (string key in item.Attributes.Keys)
{
writer.WriteAttribute(key, item.Attributes[key]);
}
writer.Write(HtmlTextWriter.TagRightChar);
HttpUtility.HtmlEncode(item.Text, writer);
writer.WriteEndTag("option");
writer.WriteLine();
}
//option 添加optgroup
private void optgroupBeginTag(string name, HtmlTextWriter writer)
{
writer.WriteBeginTag("optgroup");
writer.WriteAttribute("label", name);
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteLine();
}
private void optgroupEndTag(HtmlTextWriter writer)
{
writer.WriteEndTag("optgroup");
writer.WriteLine();
}
}
将它保存为一个类库文件。然后新建一个aspx页面,前台添加一个Panel,后台代码要添加上面类库文件的命名空间。
aspx代码
<form id="form1" runat="server">
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px">
</asp:Panel>
</form>
aspx.cs代码
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = RK.Dal.ArticleMgr.GetFSCategory();
//首先得到一个dt,数据要求,
//第一列为DropDownList选项的值,
//第二列为DropDownList选项的显示文本,
//第三列是父级id,如果为0则表示是顶级;
NewDropDownList ddl = new NewDropDownList(dt);
ddl.ID = "DropClassId";
this.Panel1.Controls.Add(ddl);
}
为DropDownList 添加optgroup分组以及为ListItem 加式样相关推荐
- R语言ggplot2可视化:可视化堆叠的直方图、添加每个分组的每个bin的计数标签、在堆叠直方图的bin中的每个分组部分添加数值标签
R语言ggplot2可视化:可视化堆叠的直方图.添加每个分组的每个bin的计数标签.在堆叠直方图的bin中的每个分组部分添加数值标签 目录
- openfire--好友管理实现好友添加及分组管理
openfire中实现好友添加及分组管理. 主要基于两张table实现:ofroster,ofrostergroups. ofroster:用于记录好友关系(一对好友关系用两条记录来实现) ofros ...
- asp.net 2.0中新增的AppendDataBoundItems .dropdownlist 添加第一项
在asp.net 2.0中,新增了一个AppendDataBoundItems属性,十分方便,使可以在执行数据绑定之前将项添加到 listcontrol 对象中.执行数据绑定之后,项集合中包含数据源中 ...
- 用Javascript为DropDownList添加一个Item至定义索引位置
用Javascript为DropDownList控件下拉式选择添加一个Item至定义索引位置. 准备数据,创建一个对象,将是存储DropDownList控件每个Item数据. View Code Im ...
- HTML全面深入学习-select的optgroup分组
看: <select> <optgroup label="碱性金属"> <option>锂 (Li)</option> <op ...
- ztree 更新配置后重新渲染树_【问】zTree异步加载时添加父节点怎样避免再次加载整树...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 具体情况是 每当我执行add方法添加父节点的时候,都回去server端重新获取一次树节点信息,并加载在新增加的节点下. 页面代码如下 var settin ...
- php背景图添加字,怎样给视频后面加背景图 视频加背景图片并添加一行广告文字...
有不少广告小视频中,视频画面是一张海报背景图片,图片上显示一个小视频播放,并且在画面上还有显示一行广告字幕.这样的宣传视频制作其实蛮简单的,怎样给视频后面加背景图片的方法倒是挺多,要给视频加背景图片的 ...
- 动态加载html 添加样式表,使页面动态加载不同CSS样式表,从而实现不同风格模板的方法...
我们在制作网页时,有时会制作多种风格模板,而想把这些模板都用起来,而又不知道方法,通过以下两种方法,你就可以实现相同网站不同CSS模板的方法. ASP.Net中利用CSS实现多界面两种方法. 方法一: ...
- linux视频对话框,抖音对话框视频怎么做?如何在视频画面上添加对话气泡框?视频加对话气泡的方法...
小编家里有个快要两周岁的小侄女,平日里总是喜欢做一些人小鬼大的事情,这不,前段时间她妈妈发了一个小视频,她拉着一个跟她差不多大的行李箱一脸严肃地说她要去上班~那么小一个小不点,居然很认真地对她妈妈说要 ...
最新文章
- 【python图像处理】python绘制3D图形
- 技术干货 | Native 页面下如何实现导航栏的定制化开发?
- SAP WebIDE UI5应用的几种启动方式
- 青茶什么时候拆_为什么日本绿茶那么绿?比中国的高级绿茶还要绿
- React 的诞生过程
- 13. Memcache 安装,启动,基本命令,URL
- 诺基亚再做手机,没有机会
- carmaker的弱智算法
- 这样 PDF 的技术简历,HR根本不想看,谈何到面试官手中?
- 相关系数(Correlation)
- 如何解决excel文档打不开呢?
- 专访美团外卖曹振团:天下武功唯快不破
- 导向滤波原理(Guided Filter)
- 怀孕计算机在线,【孕期天数计算器在线计算_孕期天数计算器在线计算专题】- 天鹅到家...
- ardupilot软件仿真及调试(vscode版)
- QT软件开发之入门基础-搭建开发环境
- matlab复数方程的根,matlab解超越方程的复数根
- maya2018拓扑功能实现
- 【新示例】协作云路上的先驱or先烈,思科、TCL合资的科天云这样思考
- 全国IT公司红黑榜排名(更新时间11月8日)
热门文章
- liunx上安装nacos
- 第一次上传代码到gitee
- Spring Security原理之springSecurityFilterChain
- Python * ** 打包解包详解
- python 靶心_手把手教你使用Python实战反欺诈模型|原理+代码
- 运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解
- 霹雳小组4显示不了服务器,霹雳小组4-指令码
- electron 托盘图标闪烁_从零到一,用 Electron 开发桌面效率工具
- java矩阵传递给r_从JAVA调用R得到卡方统计和p值
- 南大计算机学硕复试,2019南大CS考研复试笔试回忆