MS.Tech - IT人

.NET & 微软企业服务器 & 前沿技术和产品
随笔 - 107, 评论 - 1269, 引用 - 87

导航

关于

所有内容和观点仅代表个人观点,如有问题和建议请发Email给我。

标签

每月存档

最新留言

广告

 

    BulletedList是一个让你轻松在页面上显示项目符号和编号格式(Bulledted List)的控件。对于ASP.NET 1.x里要动态显示Bulledted List时,要么自己利用HTML<ol><ul>元素构造,要么就是“杀鸡用牛刀”的动用Repeater来显示。前者过于死板,后者过于overkill,也许微软听到这种声音,于是ASP.NET 2.0总算搞了个BulletedList出来了。这控件虽然给人不太多注意,但却看得出微软确实是在乎“用户需求”的。BulletedList控件的主要属性有BulletStyleDisplayModeItems和主要事件Click

 

l        BulletStyle:项目符号编号样式值,对应着System.Web.UI.WebControls.BulletStyle枚举类型值。其共有以下10种选择项:

1.      Circle:表示项目符号编号样式设置为“○”空圈圈。

2.      CustomImage:表示项目符号编号样式设置为自定义图片,其图片由BulletImageUrl属性指定。

3.      Disc:表示项目符号编号样式设置为“●”实圈圈。

4.      LowerAlpha:表示项目符号编号样式设置为小写字母格式。如abcd26个小写英文字母。

5.      LowerRoman:表示项目符号编号样式设置为小写罗马数字格式。如iiiiiiiv等小写的罗马数字。

6.      NotSet:表示不设置项目符号编号样式。此时将以Disc样式为默认样式显示。

7.      Numbered:表示设置项目符号编号样式为数字格式。如1234等数字格式。

8.      Square:表示设置项目符号编号样式为“■”实体黑方块。

9.      UpperAlpha:表示设置项目符号编号样式为大写字母格式。如ABCD26个大写英文字母。

10.  UpperRoman:表示设置项目符号编号样式为大写罗马数字格式。如IIIIIIIV等大写的罗马数字。

l        DisplayMode:顾名思义为显示模式,对应着System.Web.UI.WebControls.BulletedListDisplayMode枚举类型值。其共有以下三种选择项:

1.      Text:表示以纯文本形式来表现项目列表。

2.      HyperLink:表示以超链接形式来表现项目列表。链接文字为某个具体项ListItemText属性,链接目标为ListItemValue属性。

3.      LinkButton:表示以服务器控件LinkButton形式来表现项目列表。此时每个ListItem项都将表现为LinkButton,同时以Click事件回发到服务器端进行相应操作。

l        Items:该属性对应着System.Web.UI.WebControls.ListItem对象集合。项目符号编号列表中的每一个项均对应一个ListItem对象。ListItem对象有四个主要属性:

?        Enabled:该项是否处于激活状态。默认为True

?        Selected:该项是否处于选定状态。默认为True

?        Text:该项的显示文本。

?        Value:该项的值。

l        Click:该事件在BulletedList控件的DisplayMode处于LinkButton模式下,并BulletedList控件中的某项被点击时触发。触发时将被点击项在所有项目列表中的索引号(0开始)作为传回参数传回服务器端。

 

对于各种BulletStyle,这里只列出一张截图供观看,看了就明白各种BulletStyle在实际中的样子了。

 

同样,下面以三种DisplayMode情况作三个简单示例,以便更好理解BulletedList的各种属性方法和应用。

 

1.     Text显示模式:

此种模式最为简单,仅仅提供项目列表的显示而以。其表现代码为:

        <asp:BulletedList ID="BulletedList1" BulletStyle="Circle" runat="server">

            <asp:ListItem>Item #1</asp:ListItem>

            <asp:ListItem>Item #2</asp:ListItem>

            <asp:ListItem Text="Item #3"></asp:ListItem>

            <asp:ListItem Text="Item #4" Value="Item #4"></asp:ListItem>

        </asp:BulletedList>

当然,也可以通过数据绑定来实现数据显示,做法类似下面HyperLink的数据绑定操作。

 

2.     LinkButton显示模式:

这里只简要说明其数据绑定的数据显示操作。

            <asp:BulletedList ID="BulletedList1" runat="server" DataSourceID="SqlDataSource1"

                DataTextField="ProductName" DataValueField="ProductID" DisplayMode="LinkButton">

            </asp:BulletedList>

            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"

                SelectCommand="SELECT TOP 10 [ProductID], [ProductName] FROM [Products]">

            </asp:SqlDataSource>

3.     HyperLink显示模式:

XmlDataSource作为数据源绑定到BulletedList控件相对于SqlDataSource来说,要繁琐点。XmlDataSourceSqlDataSource都属于新增的数据源控件,在后面会再作介绍。

    假设一份XML数据:

<?xml version="1.0" encoding="utf-8" ?>

<QuickLinks>

     <QuickLink>

         <Name>Whidbey @ ASP.NET</Name>

         <Url>http://www.asp.net/Whidbey</Url>

     </QuickLink>

     <QuickLink>

         <Name>ASP.NET Dev Center</Name>

         <Url>http://msdn.microsoft.com/asp.net/</Url>

     </QuickLink>

     <QuickLink>

         <Name>.NET WebLogs @ ASP.NET</Name>

         <Url>http://weblogs.asp.net</Url>

     </QuickLink>

     <QuickLink>

         <Name>ASP.NET Web Matrix</Name>

         <Url>http://asp.net/WebMatrix</Url>

     </QuickLink>

</QuickLinks>

    对应这份XML文件的XSL代码为:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

     <xsl:template match="QuickLinks">

         <QuickLinks>

              <xsl:apply-templates select="QuickLink"/>

         </QuickLinks>

     </xsl:template>

     <xsl:template match="QuickLink">

         <QuickLink>

              <xsl:attribute name="Name">

                   <xsl:value-of select="Name"/>

              </xsl:attribute>

              <xsl:attribute name="Url">

                   <xsl:value-of select="Url"/>

              </xsl:attribute>

              <xsl:apply-templates/>

         </QuickLink>

     </xsl:template>

</xsl:stylesheet>

此时将这份XML文件绑定到BulletedList控件上:

            <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/NavigateMenu.xml"

                TransformFile="~/NavigateMenu.xsl" XPath="QuickLinks/QuickLink"></asp:XmlDataSource>

            <asp:BulletedList ID="BulletedList1" runat="server" DataSourceID="XmlDataSource1"

                DataTextField="Name" DataValueField="Url" DisplayMode="HyperLink">

            </asp:BulletedList>

可以从上面看到XmlDataSource除了DataFile,还需要TransformFile和需要指定XPath才能作为正常数据源被绑定到BulletedList中(其他诸如DropDownList等绑定XmlDataSource时,做法也类似。在介绍XmlDataSource会进一步说明,这里先暖暖身)。

 

[总结]:诚如我在开头所说的那样,对于ASP.NET 1.x里要动态显示项目编号符号列表时,要么自己利用HTML<ol><ul>元素构造,要么就是“杀鸡用牛刀”的动用Repeater来显示。前者过于死板,后者过于overkill。而BulletedList属于“中庸”路线,恰到好处的控件,多一分则过火,少一分则不足。

 

[参考资料]

1.         MSDN Library for Visual Studio 2005 beta2

2.         http://beta.asp.net/QUICKSTART/aspnet/default.aspx

打印 | 张贴于 2005-05-15 20:01:00 | Tag:暂无标签

留言反馈

#kaqzwlgt - Google Search 编辑
kaqzwlgt - Google Search
2008-09-23 18:45:13 | [匿名:]
#ASP.NET2.0 新增控件(1)——BulletedList 编辑
&nbsp;&nbsp; BulletedList是一个让你轻松在页面上显示项目符号和编号格式(Bulledted List)的控件。对于ASP.NET 1.x里要动态显示Bulledted List时,要么自己利用HTML的&lt;ol&gt;或&lt;ul&gt;元素构造,要么就是“杀鸡用牛刀”的动用Repeater来显示。前者过于死板,后者过于overkill,也许微软听到这种声音,于是ASP.NET...
2006-04-28 12:17:00 | [匿名:Jane]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.2.0