All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
保护SQL,Server的十个步骤_[SQL,Server教程]
ASP.NET,2.0,Club,Web,Site,Starter,Kit,补丁_[Asp.Net教程]
PHP教程:用PHP程序对网页表单的处理_[PHP教程]
HTML 初学者指南(9)_[Html教程]
全面接触SQL语法(7)_mssql学习_编程技术
JS捕捉网页浏览器窗口的关闭与刷新_JavaScript技术_编程技术
在delphi 7中丰富的组件举例
PHP和MySQL基础教程(二)_[PHP教程]
.NET程序调用SSIS中的DTS包_.net资料_编程技术
PHP教程:PHP中对文件和目录的操作方法_[PHP教程]
Reading number is top 10 pictures
Female model behind the bitterness, often being overcharged3
China telecom 114 spokesman MeiYanXu2
A man's favorite things7
Desktop Wallpapers1
The real super beauty15
好身材能把衣服穿出3D效果
浴室里的美女
鸡蛋的新玩法
Play for Free show breast in a world of ice and snow
29 the belle stars after bath figure3
Download software ranking
Tram sex maniac 2 (H) rar bag13
Desire a peach blossom
Prostitutes diary
ASP.NET.2.0.XML.高级编程(第3版)
Unix video tutorial19
Eclipse 4.2.1 For Win32
实战黑客不求人
Unix video tutorial15
Ashlynn Video1
Rio big adventure
归海一刀 published in(发表于) 2014/1/30 1:10:28 Edit(编辑)
扩展DropDownList控件和ListBox控件(1),-,支持分组功能(optgroup标签)_[Asp.Net教程]

扩展DropDownList控件和ListBox控件(1),-,支持分组功能(optgroup标签)_[Asp.Net教程]

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)_[Asp.Net教程]


扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签) [源码下载]

DropDownList(ListBox)控件既强大又好用。为了让它更强大、更好用,我们来写一个继承自DropDownList(ListBox)的控件。


介绍
扩展DropDownList控件和ListBox控件:
通过DropDownList控件和ListBox控件的.Items.Add(ListItem item)方法,来为其添加optgroup标签,从而实现分组功能


使用方法
1、设置属性:
OptionGroupValue - 用于添加DropDownList(ListBox)控件的分组项的ListItem的Value值(默认为optgroup)
2、使用DropDownList(ListBox)控件的.Items.Add(ListItem item)方法:
OptionGroupValue为默认值时:SmartDropDownList.Items.Add(new ListItem("中国", "optgroup"));


图示



关键代码(以DropDownList为例)
SmartDropDownList.cs


using System;
using System.Collections.Generic;
using System.Text;


using System.Web.UI.WebControls;
using System.Web.UI;


[assembly: System.Web.UI.WebResource("YYControls.SmartDropDownList.Resources.Icon.bmp", "image/bmp")]


namespace YYControls
{
/**////


/// SmartDropDownList类,继承自DropDownList
///

[ToolboxData(@"<{0}:SmartDropDownList runat='server'>")]
[System.Drawing.ToolboxBitmap(typeof(YYControls.Resources.Icon), "SmartDropDownList.bmp")]
public partial class SmartDropDownList : DropDownList
{
/**////
/// 构造函数
///

public SmartDropDownList()
{


}


/**////


/// 将控件的内容呈现到指定的编写器中
///

/// writer
protected override void RenderContents(HtmlTextWriter writer)
{
// 呈现Option或OptionGroup
OptionGroupRenderContents(writer);
}
}
}
Property.cs
using System;
using System.Collections.Generic;
using System.Text;


using System.ComponentModel;
using System.Web.UI;


namespace YYControls
{
/**////


/// SmartDropDownList类的属性部分
///

public partial class SmartDropDownList
{
/**////
/// 用于添加SmartDropDownList的分组项的ListItem的Value值
///

[
Browsable(true),
Description("用于添加DropDownList的分组项的ListItem的Value值"),
Category("扩展")
]
public virtual string OptionGroupValue
{
get
{
string s = (string)ViewState["OptionGroupValue"];


return (s == null) ? "optgroup" : s;
}
set
{
ViewState["OptionGroupValue"] = value;
}
}
}
}
OptionGroup.cs
using System;
using System.Collections.Generic;
using System.Text;


using System.Data;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Web;


namespace YYControls
{
/**////


/// SmartDropDownList类的属性部分
///

public partial class SmartDropDownList
{
/**////
/// 呈现Option或OptionGroup
///

/// writer
private void OptionGroupRenderContents(HtmlTextWriter writer)
{
// 是否需要呈现OptionGroup的EndTag
bool writerEndTag = false;


foreach (ListItem li in this.Items)
{
// 如果没有optgroup属性则呈现Option
if (li.Value != this.OptionGroupValue)
{
// 呈现Option
RenderListItem(li, writer);
}
// 如果有optgroup属性则呈现OptionGroup
else
{
if (writerEndTag)
// 呈现OptionGroup的EndTag
OptionGroupEndTag(writer);
else
writerEndTag = true;


// 呈现OptionGroup的BeginTag
OptionGroupBeginTag(li, writer);
}
}


if (writerEndTag)
// 呈现OptionGroup的EndTag
OptionGroupEndTag(writer);
}


/**////


/// 呈现OptionGroup的BeginTag
///

/// OptionGroup数据项
/// writer
private void OptionGroupBeginTag(ListItem li, HtmlTextWriter writer)
{
writer.WriteBeginTag("optgroup");

// 写入OptionGroup的label
writer.WriteAttribute("label", li.Text);


foreach (string key in li.Attributes.Keys)
{
// 写入OptionGroup的其它属性
writer.WriteAttribute(key, li.Attributes[key]);
}


writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteLine();
}


/**////


/// 呈现OptionGroup的EndTag
///

/// writer
private void OptionGroupEndTag(HtmlTextWriter writer)
{
writer.WriteEndTag("optgroup");
writer.WriteLine();
}


/**////


/// 呈现Option
///

/// Option数据项
/// writer
private void RenderListItem(ListItem li, HtmlTextWriter writer)
{
writer.WriteBeginTag("option");


// 写入Option的Value
writer.WriteAttribute("value", li.Value, true);


if (li.Selected)
{
// 如果该Option被选中则写入selected
writer.WriteAttribute("selected", "selected", false);
}


foreach (string key in li.Attributes.Keys)
{
// 写入Option的其它属性
writer.WriteAttribute(key, li.Attributes[key]);
}


writer.Write(HtmlTextWriter.TagRightChar);


// 写入Option的Text
HttpUtility.HtmlEncode(li.Text, writer);


writer.WriteEndTag("option");
writer.WriteLine();
}
}
}


作者:webabcd 来源:http://www.cnblogs.com/webabcd/







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.