List控件(如 CheckBoxList、DropDownList、ListBox 和 RadioButtonList 类)继承自ListControl类,不能直接创建 ListControl 抽象类的实例。相反,此类由其他类(如 CheckBoxList、DropDownList、ListBox 和 RadioButtonList 类)继承以提供通用的基本功能。
    ListControl 类的属性允许您指定用来填充列表控件的数据源。使用 DataSource 属性指定要绑定到列表控件的数据源。如果数据源包含多个表,请使用 DataMember 属性指定要使用的表。通过分别设置 DataTextField 和 DataValueField 属性,可以将数据源中的不同字段绑定到列表控件项的 ListItem.Text 和 ListItem.Value 属性。通过设置 DataTextFormatString 属性,可以设定列表控件中每一项的显示文本的格式。
    列表控件中显示的所有项都保存在 Items 集合中。可以使用 SelectedIndex 属性,以编程方式指定或确定列表控件中选定项的索引。使用 SelectedItem 属性,可以访问选定项的属性。
    ListControl 类提供了 SelectedIndexChanged 事件,在信息发往服务器之间,如果列表控件中的选定项发生变化,会引发该事件。这使您可以为此事件提供自定义处理程序。有关处理事件的更多信息,请参见使用事件。

继承自ListControl的列表控件包括了以下几个:
    BulletedList     -- 显示列表项,列表项可以为文本、链接按钮或者是超链接
    checkboxlist    -- 显示复选框列表
    dropdownlist   -- 显示下拉框列表
    Listbox           -- 显示列表框
    RadioButtonlist-- 显示单选按钮列表

1.共通属性和方法

以为以上几个控件都继承于ListControl,所以它们有一些共通的东西
    1.1 每个控件都有一个选项列表,每个选项都是由ListItem类的一个实例。
       其中ListItem类具有以下通用属性
         ● Attributes:可以在列表项中添加HTML属性
         ● Enable:可以将列表项置为可用
         ● Selected:可以将列表项标记为选中
         ● Text:显示的文本
         ●Value:对应的隐藏值
    1.2 都可以绑定要数据源,支持声明式绑定和编程式绑定,声明式比较简单,不多述。
       编程式绑定不光可以绑定ListItem对象集合外,还可以绑定DataTable中的Columns,可以绑定List<Type>对象。如:
例1:List控件绑定List<Type>对象

<script runat="server">
public class CartItem
{
    private int _id;
    public string _description;
    public int Id {  get { return _id; } }
    public string Description
    {
         get { return _description; }
    }
    public CartItem(int id, string description)
    {
        _id = id;
        _description = description;
    }
}

void Page_Load()
{
    if (!IsPostBack)
    {
        // Create shopping cart
        List<CartItem> shoppingCart = new List<CartItem>();
        shoppingCart.Add(new CartItem(1, “Notebook Computer”));
        shoppingCart.Add(new CartItem(2, “HD Plasma Television”));
        shoppingCart.Add(new CartItem(3, “Lava Lamp”));
        lstShoppingCart.DataSource = shoppingCart;
        lstShoppingCart.DataBind();
    }
}
</script>
<asp:ListBox id=”lstShoppingCart” DataTextField=”Description”
       DataValueField=”Id” Runat=”server” />

例2:List控件绑定数据源控件

<asp:DropDownList id=”ddlMovies” DataSourceID=”srcMovies” DataTextField=”Title”
        DataValueField=”Id” Runat=”server” />
<asp:SqlDataSource id=”srcMovies” SelectCommand=”SELECT Id, Title FROM Movies”
        ConnectionString=”<%$ ConnectionStrings:Movies %>” Runat=”server” />

1.3 以相同的方式确定被选中的项
       通过SelectedIndex、SelectedItem、SelectedValue属性获取和设置被选中的项。
    1.4 追加数据项:AppendDataBOundItems属性
       默认的,当使用DataBind绑定到数据源时,List控件原有的数据会被清空,新的选项会被加入进来,而如果通过设定AppendDataBoundItems为true属性,就可以在绑定数据源时,保留已经存在的数据项。
    1.5 启用自动回传功能: AutoPostBack属性
       当设置ListControl的AutoPostBack属性为true时,对List控件中的列表项进行更改,都会导致List控件的表单自动回传到服务器。
    1.6 获得列表项(ListItem)的集合: Items属性
       所有List控件呈现的列表项都包含在ListControl控件的Items属性中。该属性返回的是一个ListItemCollection对象。
       可以直接访问这个集合中的列表项,增加或删除指定列表项或者改变列表项的顺序。
例3:访问和修改列表项

<script runat="server">
protected void btnAdd_Click(object sender, EventArgs e)
{
    ListItem item = lstAllMovies.SelectedItem;
    if (item != null)
    {
        lstAllMovies.Items.Remove(item);
        lstFavoriteMovies.ClearSelection();   // 清除列表选择并将所有项的 Selected 属性设置为 false。
        lstFavoriteMovies.Items.Add(item);
    }
}
</script>

<asp:ListBox id=”lstAllMovies” DataSourceID=”srcMovies” DataTextField=”Title”
        DataValueField=”Id” Runat=”server” />
<asp:Button id=”btnAdd” Text=”—&gt;” ToolTip=”Add List Item”
        Runat=”server” OnClick=”btnAdd_Click” />
<asp:ListBox id=”lstFavoriteMovies” Runat=”server” />
<asp:SqlDataSource id=”srcMovies” SelectCommand=”SELECT Id, Title FROM Movies”
        ConnectionString=”<%$ ConnectionStrings:Movies %>” Runat=”server” />

2. DropdownList控件

默认的DropdownList控件不大好用,推荐使用第三方DropdownList控件,例如EasyListBox。见www.easylistbox.com

3. RadioButtonList控件

RadioButtonList控件有3个属性可以影响其布局,分别是:
     ● RepeatColumns: 按钮需要显示的列数
     ● RepeatDirection: 排列方向,可以赋为Horizontal(横向)及Vertical(纵向)
     ● RepeatLayout: 单选按钮是否显示在一个HTML表格中,可以赋值为Table或Flow. 默认为Table

4. ListBox控件

与DropdownList控件相似,不同的是,可以多选。另外注意的是ListBox的Rows属性,可以得知一次显示选择项的行数
       ● Rows: 获取或设置 ListBox 控件中显示的行数。默认为4
    可以使用 Items 集合检查 ListBox 控件中包含的 ListItem 对象。例如,可以通过枚举 Items 集合并测试每个 ListItem 元素的 Selected 值来确定 ListBox 控件中的选定项。
例4:获得ListBox中选择项

<script runat=”server”>
protected void btnSubmit_Click(object sender, EventArgs e)
{
    foreach (ListItem item in lstMovies.Items)
        if (item.Selected)
            lblMovie.Text += “<li>” + item.Text;
}
</script>
<asp:ListBox id=”lstMovies” DataSourceID=”srcMovies” DataTextField=”Title”
        DataValueField=”Id” SelectionMode=”Multiple” Runat=”server” />
<asp:Button id=”btnSubmit” Text=”Submit” OnClick=”btnSubmit_Click” Runat=”server” />
<asp:SqlDataSource id=”srcMovies” SelectCommand=”SELECT Id, Title FROM Movies”
        ConnectionString=”<%$ ConnectionStrings:Movies %>”  Runat=”server” />

5. CheckboxList控件

呈现一组复选框列表,可以多选,程序中获得选择项的方式同例4的代码相同。也是通过枚举来实现。
    其有3个属性可以影响其布局,分别是RepeatColumns、RepeatDirection、RepeatLayout,用法与RadioButtonList相同。

6. BulletedList控件

可以呈现无序(项目符号)的列表,也可以呈现有序(带编号)的列表,每个列表项可以为文本、LinkButton或者是一个到其它WEB页的链接。
    通过BulledStyle属性可以控制每一个列表项的外观。属性可以有以下值:Circle,CustomImage,Disc,LowerAplha…
例5:为列表项添加自定义图像:

<asp:BulletedList id=”blMovies” DataSourceID=”srcMovies” DataTextField=”Title”
         BulletStyle=”CustomImage” BulletImageUrl=”~/Images/Bullet.gif”   Runat=”server” />
<asp:SqlDataSource id=”srcMovies” SelectCommand=”SELECT Id, Title FROM Movies”
        ConnectionString=”<%$ ConnectionStrings:Movies %>”  Runat=”server” />

可以通过DisplayMode属性修改每个列表项的外观,属性接受以下值:
        ● HyperLink: 呈现为一个到其它页面的链接
        ● LinkButton: 呈现一个LinkButton控件。
        ● Text: 呈现一个简单文本
例6:为列表项呈现链接

<asp:BulletedList id=”blWebsites” DisplayMode=”HyperLink” Target=”_blank” Runat=”server”>
        <asp:ListItem Text=”Yahoo” Value=”http://www.Yahoo.com” />
        <asp:ListItem Text=”Google” Value=”http://www.Google.com” />
        <asp:ListItem Text=”Deja” Value=”http://www.Deja.com” />
</asp:BulletedList>

注:BulletedList与其它List控件不同,它不支持属性SelectedIndex、SelectedItem、SelectedValue。因为它压根儿无法选择。

转载于:https://www.cnblogs.com/30ErLi/archive/2010/09/17/1829253.html

asp.net学习之 数据绑定控件--List数据绑定控件相关推荐

  1. asp.net学习之DataList控件

    DataList控件与Repeater控件一样由模板驱动,与Repeater控件不同的是: DataList控件默认输出是一个HTML表格.DataList在输出时已经在相应的模板上套上了表格标签,而 ...

  2. asp.net学习之Repeater控件

    Repeater控件和DataList控件,可以用来一次显示一组数据项.比如,可以用它们显示一个数据表中的所有行.      Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输 ...

  3. ASP.Net学习笔记002--ASP.Net服务端控件做了什么2

    ASP.Net学习笔记002--ASP.Net服务端控件做了什么2 以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 技术交流qq1群:251572072 技术交 ...

  4. WP8.1学习系列(第二十三章)——到控件的数据绑定

    在本文中 先决条件 将控件绑定到单个项目 将控件绑定到对象的集合 通过使用数据模板显示控件中的项目 添加详细信息视图 转换数据以在控件中显示 相关主题 本主题介绍了如何在使用 C++.C# 或 Vis ...

  5. asp.net中HTML控件和web控件的简单理解

    前言 在学习视频的时候,讲解者一会儿使用HTML控件,一会儿使用web控件,有一种很迷糊的感觉,他俩到底有什么区别呢,作为一个初学者,有必要分析一下. 概念 HTML控件是客户端控件,响应客户端事件, ...

  6. 【转】 ASP.NET 3.5中使用新的ListView控件

    ASP.NET中新的ListView控件为显示和CURD数据库操作提供了基于模板的布局,使之成为一项极好的方式,建立以数据为中心的Web应用程序. 当你编写以用户为中心的应用程序时,总需要某种形式的数 ...

  7. Windows App开发之集合控件与数据绑定

    为ListView和GridView添加数据 ListView采用垂直堆叠得方式显示数据,而GridView则采用水平堆叠得方式. 长相的话嘛,它们都差不多. <Grid Name=" ...

  8. ASP.NET 3.5核心编程学习笔记(18):数据绑定表达式

    简单数据绑定 数据绑定表达式是由<%...%>包裹的可执行代码,以#号为前缀.它可以通过DataBoundLiteralControl类的实例以编程方式加以管理. 数据绑定表达式通常从数据 ...

  9. [原创]FineUI秘密花园(二十四) — 树控件之数据绑定

    上一篇文章我们介绍了树控件的基本用法,不过都是通过标签来声明树控件的结构,本章我们会详细讲解如何在后台绑定树控件. 绑定到XmlDocument 下面通过一个简单的例子来看如何将XmlDocument ...

最新文章

  1. pda找不到服务器,PDA连不上服务器常见问题分析.doc
  2. python网页模板_python-找不到HTML模板
  3. 了解 Boost Filesystem Library文件系统
  4. 在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH
  5. 关于计算机与网络导论的论文,计算机科学与导论论文5
  6. spacy库的安装与使用_为 SpaCy 提供的中文数据模型
  7. python入门-分类和回归各种初级算法
  8. 厉害了,3万字的MySQL精华总结 + 面试100问!
  9. DeepNude已迅速下线,来看看它涉及的图像修复技术
  10. UWP通过机器学习加载ONNX进行表情识别
  11. 在使用pydelicious时出现HTTP Error 500: Internal Server Error的错误的解决方法:
  12. C++ 入门2 ---- 类型转换
  13. 一个请求里能有多个cookie吗_从一个男人对女人家人的态度里,能看出他有多爱对方吗?...
  14. C语言常见的关键字汇总
  15. 汽车HUD抬头显示全产业链深度解析报告
  16. 【云存储】企业云存储管理解决方案
  17. 阿里P7级别面试经验总结,完整版开放下载
  18. 小米pro15拆机_小米笔记本Pro 15增强版值得买吗 小米笔记本Pro 15增强版拆解+评测...
  19. android加法计算器代码,Android实现简单加法计算器
  20. oracle快照方案,【DBA及开发必备】全解ORA-1555快照太旧错误原理及解决方案

热门文章

  1. 优雅的使用 ThreadLocal
  2. 鱼佬:百行代码入手数据挖掘赛!
  3. 学习!机器学习算法优缺点综述
  4. 拿到2021年灰飞烟灭的算法岗offer的大佬们,简历上都有什么?
  5. 自动驾驶领域大佬在CVPR2020中 关于3D Reconstruction Learning的报告
  6. 她92年的,27岁,当上浙大博导。
  7. Python从入门到精通 - 入门篇 (上)
  8. 为什么程序员总是发现不了自己的Bug?
  9. 山东人为什么爱用倒装句?没有吧我觉得。
  10. 爬虫之requests模块发送带header的请求