asp.net学习之 数据绑定控件--List数据绑定控件

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
简介: 原文:asp.net学习之 数据绑定控件--List数据绑定控件    List控件(如 CheckBoxList、DropDownList、ListBox 和 RadioButtonList 类)继承自ListControl类,不能直接创建 ListControl 抽象类的实例。
原文: asp.net学习之 数据绑定控件--List数据绑定控件

    List控件(如 CheckBoxListDropDownListListBoxRadioButtonList 类)继承自ListControl类,不能直接创建 ListControl 抽象类的实例。相反,此类由其他类(如 CheckBoxListDropDownListListBoxRadioButtonList 类)继承以提供通用的基本功能。
    ListControl 类的属性允许您指定用来填充列表控件的数据源。使用
DataSource 属性指定要绑定到列表控件的数据源。如果数据源包含多个表,请使用 DataMember 属性指定要使用的表。通过分别设置 DataTextFieldDataValueField 属性,可以将数据源中的不同字段绑定到列表控件项的 ListItem.TextListItem.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。因为它压根儿无法选择。

 

相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
目录
相关文章
|
2月前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
111 0
|
5月前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
59 8
|
7月前
|
消息中间件 负载均衡 NoSQL
Redis系列学习文章分享---第七篇(Redis快速入门之消息队列--List实现消息队列 Pubsub实现消息队列 stream的单消费模式 stream的消费者组模式 基于stream消息队列)
Redis系列学习文章分享---第七篇(Redis快速入门之消息队列--List实现消息队列 Pubsub实现消息队列 stream的单消费模式 stream的消费者组模式 基于stream消息队列)
89 0
|
4月前
|
数据可视化 前端开发 容器
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
本文介绍了如何在Twaver-HTML5中使用列表可视化视图组件(List),展示了如何创建列表、设置列表属性(如行高、间隔颜色等)、实现数据绑定和排序,以及如何通过React代码示例进行操作。
56 2
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
|
3月前
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
学习计算机组成原理(王道考研)------第十一天https://zhengyz.blog.csdn.net/article/details/121706379?spm=1001.2014.3001.5502
这篇文章是关于计算机组成原理的王道考研学习笔记,主要介绍了半导体存储器RAM和ROM的相关知识。
学习计算机组成原理(王道考研)------第十一天https://zhengyz.blog.csdn.net/article/details/121706379?spm=1001.2014.3001.5502
|
4月前
|
开发框架 JavaScript 前端开发
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【文献学习】Phase-Aware Speech Enhancement with Deep Complex U-Net
文章介绍了Deep Complex U-Net模型,用于复数值的语音增强,提出了新的极坐标掩码方法和wSDR损失函数,并通过多种评估指标验证了其性能。
71 1
|
5月前
|
开发框架 .NET API
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
128 0
|
7月前
|
开发框架 JSON .NET
学习ASP.NET 中的 默认应用程序配置源
默认主机配置源 使用命令行配置提供程序的命令行参数
49 2