ASP.NET中DataList控件
来源:互联网 发布:灯光矩阵 编辑:程序博客网 时间:2024/05/16 07:10
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();
}
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中DataList控件
- ASP.NET中DataList控件属性
- ASP.NET - DataList 控件
- ASP.NET-DataList控件-DataList嵌套
- ASP.NET – DataList 控件
- ASP.NET中DataGrid和DataList控件用法比较
- ASP.NET中DataList控件如何实现嵌套?
- ASP.NET 中DataList控件的分页实现
- Asp.NET中DataList 用法
- 在asp.net中如何获取asp:DataList中子控件asp:RadioButtonList的值
- ASP.NET Web DataList控件介绍
- asp.net DataList控件分页代码
- ASP.NET DataList控件分页功能
- asp.net Datalist模板控件开发
- 无敌的datalist控件 asp.net
- Asp.net--数据绑定控件DataList
- asp.net学习之DataList控件
- ASP.NET的DataList和Repeater控件
- 今天学了凯撒密码(单表密码),写个明密文对偶表来看看
- oracle 游标大全
- 在VC6中创建wxWidgets
- SQLServer数据集合的交、并、差集运算
- 如何让RHEL支持双拼
- ASP.NET中DataList控件
- Flex 3快速入门: 构建高级用户界面 设置组件的皮肤
- wxWidgets vs2005
- apache ab压力测试
- 发邮件的类MailMessage+SmtpMail
- SET EXTENDED CHECK OFF.
- 遗传中的整数编码规则
- 数据绑定到DataList中ItemTemplate的时候,对里面控件的处理
- Sharepoint list 自定义分页与GotoPage solution