`

ASP.NET中DataList控件模板属性说明及各功能实现效果介绍

 
阅读更多
在用ASP.NET做网站开发过程中,DataList这个控件必不可少会用到一个,下面介绍下:
DataList控件可用于创建模板化的列表数据,可以显示诸如一行中有多列的内容,可用于任何重复结构中的数据,如表格。
1、DataList控件的模板
AlternatingItemTemplate为每一个间隔项提供内容和布局。如果没有定义,在DataList中将为每一项使用ItemTemplate;
EditItemTemplate为当前正在编辑的项提供内容和布局。如果没有定义,在DataList中将为正在编辑的项使用ItemTemplate;
FooterTemplate为页脚提供内容和布局,如果没有定义,DataList将不会有页脚;
HeaderTemplate为标题提供内容和布局,如果没有定义,DataList将不会有标题行;
ItemTemplate必须定义,每一项的内容和布局的默认定义;
SelectedItemTemplate为当前选中的行提供内容和布局,如果没有定义,ItemTemplate将被使用;
SeparatorTemplate为项与项之间的分隔符提供内容和布局,如果没有定义,将不会使用分隔符。
2、DataList控件的常用属性和事件
Caption作为HTML caption元素显示的文本;
CellPadding单元格内容和边框之间的像素数;
CellSpacing单元格之间的像素数;
DataKeyField指定数据源中的键字段;
DataKeys每条记录的键值的集合;
DataMember设定多成员数据源中的数据成员;
DataSource为控件设置数据源;
EditItemIndex编辑的行,从零开始的行索引。如果没有项被编辑或者清除对某项的选择,设置值为-1;
Items控件中的所有项的集合;
RepeatColumns设置显示的列数;
RepeatDirection如果为Horizontal,项是从左到右,然后从上到下显示,如果是Vertical,项是从上到下,然后从左到右显示的。默认值为Vertical;
SelectedIndex当前选中的项的索引,从0开始,如果没有选中任何项,或者清除对某项的选择,将值设置为-1;
SelectedItem返回当前选中的项;
SelectedValue返回当前的选中项;
ShowFooter是否显示页脚,默认值为True,仅当FooterTemplate不为null时有效;
ShowHeader是否显示标题行,默认值为true,仅当HeaderTemplate不为null时有效;

DataList控件的常用事件
DataBinding当控件绑定到数据源时触发(继承自Control);
DeleteCommand当单击“Delete”按钮时触发;
EditCommand当单击“Edit”按钮时触发;
Init当控初始化时触发( 继承自Control);
ItemCommand当单击控件中的一个按钮时触发;
ItemCreated当控件中的所有行创建完毕后触发;
ItemDataBound当绑定数据时触发;
PreRender在控件呈现在页面上之前触发(继承自Control);
UpdateCommand当单击“Update”按钮时触发。
3、使用方法

首先,创建一个页面,把DataList控件拖到表单中。
<asp:Label ID="TitleLabel" runat="server" Text='<%# Eval("Title") %>' />

4、实现DataList控件的编辑功能
DataList控件没有内置编辑等功能,如果要实现编辑,我们需要自己编写代码控制,为了实现编辑功能,我们要在页面中使用编辑模板。
首先,设置编辑按钮的属性,可以设置“编辑”按钮的“CommandName”属性设置为“edit”,然后就可以DataList控件的EditCommand事件。双击EditCommand事件,在生成的事件代码中编写代码如下:
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = e.Item.ItemIndex;
        DataBind();
    }
修改和取消的思路与编辑按钮的思路完全一致:分别为修改和取消的按钮对应的CommandName属性设置为:update和Cancel,然后编写UpdateCommand事件和CancelCommand事件的对应的事件代码。
取消的操作代码:
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = -1;
        DataBind();
    }
更新的操作代码:
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
    {
        //从选中记录中获取各更新参数的值
        SqlDataSource1.UpdateParameters["ID"].DefaultValue = ((TextBox)e.Item.FindControl("TextBox1")).Text;
        SqlDataSource1.UpdateParameters["Title"].DefaultValue = ((TextBox)e.Item.FindControl("TextBox2")).Text;
        SqlDataSource1.UpdateParameters["Price"].DefaultValue = ((TextBox)e.Item.FindControl("TextBox3")).Text;
        SqlDataSource1.UpdateParameters["Images"].DefaultValue = ((TextBox)e.Item.FindControl("TextBox4")).Text;
        //提交更新
        SqlDataSource1.Update();
        //设置到浏览状态
        DataList1.EditItemIndex = -1;
        //重新绑定
        DataBind();
    }

删除确定的代码
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
        {
            LinkButton lnkDelete = (LinkButton)e.Item.FindControl("lnkDelete"); //找到删除的按钮
            lnkDelete.Attributes.Add("onclick","return window.confirm('你确认要删除吗?')");//给按钮增加单击事件
        }
    }
5、DataList控件的分页
DataList控件没有内置分页和排序的功能,需要编写代码手工实现。
分页一般需要以下条件:
(1)、每页显示记录数(PageSize)
(2)、总记录数(Count)
(3)、总页数
(4)、当前页
基于PagedDataSource类的分页,常见属性:
CurrentPageIndex当前页;
PageCount总页数;
Count总记录数;
PageSize每页记录数;
DataSource 数据源;
AllowPaging控件是否实现自动分页功能。
只要将数据源和当前页数赋值给PagedDataSource类的实例对象,其它属性(总记录数和总页数)可以自动计算得出。
编写绑定的方法如下:
private void Databind()
    {
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = Product.GetProducts();  //获得记录集的方法
        pds.AllowPaging = true;  //允许分页
        pds.PageSize = 4;      //页大小
        pds.CurrentPageIndex = Page;  //当前页
        Label1.Text = "第" + (pds.CurrentPageIndex + 1).ToString() + "页共" + pds.PageCount.ToString() + "页";
        DataList1.DataSource = pds;
        DataList1.DataBind();
    }
分享到:
评论

相关推荐

    asp.net常用Web服务器控件

    实例 DataList控件模板中使用LinkButton查看详细信息 4.4 下拉列表框的应用 实例 间接改变DropDownList当前选项 实例 实现多个DropDownList控件的联动 实例 动态添加、删除DropDownList控件选项 4.5 单选按钮的应用 ...

    ASP.NET 控件的使用

    13.2.3 在DataList控件中使用模板 433 13.2.4 使用DataList控件选择数据 434 13.2.5 使用DataList控件编辑数据 437 13.2.6 格式化DataList控件 440 13.3 小结 442 第14章 使用ListView和DataPager控件 443 14.1 ...

    ASP.NET数据绑定之DataList控件

    DataList控件以表的形式呈现数据(在属性生成器中可以编辑),通过该控件,您可以使用不同的布局来显示数据记录(使用模板编辑),例如,将数据记录排成列或行的形式。您可以对 DataList控件进行配置,使用户能够编辑...

    ASP.NET.4揭秘

    13.2.3 在datalist控件中使用模板494 13.2.4 使用datalist控件选择数据496 13.2.5 使用datalist控件编辑数据499 13.2.6 格式化datalist控件503 13.3 小结505 第14章 使用listview和datapager控件506 14.1 使用...

    ASP.NET数据绑定之DataList控件实战篇

     1、首先用vs创建web应用程序,添加web窗体,在web窗体内拉入DataList控件,右击控件,选择编辑项模板,在这里我们能看到四个模板,其中两个是SelectedItemTemplate和EditItemTemplate,在ItemTemplate模板中拉入

    asp.net知识库

    如何在Asp.Net1.1中实现页面模板(所谓的MasterPage技术) Tool Tip 示例(FILTER版) Tool Tip示例 (htc版) 一个.net发送HTTP数据实体的类 按键跳转以及按Enter以不同参数提交,及其他感应事件 动态控制Page页的...

    asp.net专家疑难解答200问

    如何备份和恢复数据库 第9章 ASP.NET安全策略 第10章 常用功能及函数集 180.如何在ASP.NET中获得客户端IP地址 181.如何取得一定范围内的随机数 182.如何取得文件的扩展名示例一 182.如何...

    asp.net教学讲义

    9.5 DataList控件 144 9.5.1 使用DataList浏览数据 144 9.5.2 使用DataList编辑数据 147 第十章:数据绑定控件(一) 152 10.1 GridView 152 10.1.1 手工配置DridView与定制列 156 10.1.2 实现分页 156 10.1.3 设置...

    asp.net技术内幕(1)

    第一部分 使用ASP.NET Web表单 &lt;br&gt;第1章 建立ASP.NET页面 &lt;br&gt;1.1 ASP.NET和.NET框架 1.1.1 .NET框架类库 1.1.2 理解名称空间 1.1.3 标准的ASP.NET名称空间 1.1.4 与.NET框架兼容的语言 ...

    ASP.NET完全入门PDF

    第一篇 概论 第一章 微软.NET战略和ASP.NET简介i. 微软.NET的历史 ii. ASP.NET历史iii. 众说纷纭.NET iv. ASP.NET综述 v. 小结第二章 我的第一个ASP.NET程序 i. 配置开发环境ii. 运行配套光盘iii. 第一个例子iv. ...

    ASP.NET 3.5 开发大全

    第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...

    ASP.NET3.5从入门到精通

    第 4 章 ASP.NET 的网页代码模型及生命周期 4.1 ASP.NET 的网页代码模型 4.1.1 创建ASP.NET 网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET 网站和ASP.NET 应用...

    ASP.net技术内幕

    内容包括:ASP.NET Web表单的使用,高级ASP.NET页面的开发,ADO.NET的使用,ASP.NET应用程序的使用, ASP.NET应用程序的保护,ASP.NET Web服务的建立,.NET框架的利用,自定义的ASP.NET控件的建立,ASP.NET的应用...

    ASP.NET 3.5 开发大全word课件

    第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...

    ASP.NET 3.5 开发大全11-15

    第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...

    ASP.NET 3.5 开发大全1-5

    第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...

    asp.net专家疑难解答200问源码

    107.如何实现选择DataList控件中的条目后显示该条目的详细信息 108.如何实现DataList控件的编辑功能 109.如何对DataList控件使用样式 110.如何在DataList控件中创建多个列 111.如何实现DataList控件的分页功能 ...

    总结Visual Studio下ASP.NET模板化控件中的数据绑定

    在模板化控件中绑定到数据 FormView、DataList、Repeater 和 ListView Web 服务器控件使用模板显示数据和检索用户输入,...然后可以在模板中使用 Eval 和 Bind 函数绑定到数据源中的数据。有关更多信息,请参见 数据绑

    asp.net2.0

    在ASP.NET页面中处理BLL/DAL层的异常 给编辑和新增界面增加验证控件 定制数据修改界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 分页和排序 分页和排序报表数据 大数据量时提高...

    asp.net程序开发范例宝典

    20 2.3 常用HTML控件 21 实例013 Input(Reset)控件实现重置功能 21 实例014 Table控件布局登录页面 22 实例015 Table控件布局DataList模板(职员信息) 23 实例016 Select控件实现联动效果...

Global site tag (gtag.js) - Google Analytics