博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net学习之 数据绑定控件--List数据绑定控件
阅读量:5108 次
发布时间:2019-06-13

本文共 5754 字,大约阅读时间需要 19 分钟。

原文:

    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。见

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。因为它压根儿无法选择。

 

posted on
2014-05-04 17:51 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/3707570.html

你可能感兴趣的文章
平时十三测
查看>>
oracle&nbsp;表空间
查看>>
EnterKey转换为TabKey(兼容IE,Firefox)
查看>>
包含列的索引:SQL Server索引的阶梯级别5
查看>>
Python 中的重点来了 : 迭代器 生成器
查看>>
二进制安装mysql
查看>>
Python 生成哈希hash--hashlib模块
查看>>
myeclipse插件安装
查看>>
最近看NCZ的JS高级程序设计整理的一些代码
查看>>
浙江省第十二届省赛 Beauty of Array(思维题)
查看>>
NOIP2013 提高组 Day1
查看>>
UVA 1602 Lattice Animals
查看>>
bzoj千题计划219:bzoj1568: [JSOI2008]Blue Mary开公司
查看>>
[笔记]STM32使用非8M晶振时如何修改代码
查看>>
个人对vue生命周期的理解
查看>>
cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
查看>>
Section 1.2 dualpal
查看>>
存储(硬件方面的一些基本术语)
查看>>
Dithering-视觉的奇特现象
查看>>
观察者模式
查看>>