当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net datalist 用法

ASP.NET
通过数据捆绑将数据添加到ASP.NET 页面
ASP.NET 2.0程序安全的基础知识
ASP.NET2.0的跨页回调
使用ASP.Net Forms模式实现WebService身份验证
asp.net 2.0中不同web控件之间的相互调用
如何于DataGridView控件中以跨数据行方式显示数据
图片地址防盗链,通过IHttpHandler实现
ACCESS在Web.config里设置连接字符串
asp.net 2.0 下的表单验证Cookieless属性
结合ASP.NET与JavaScript开发电子沙盘
理解ASP.NET与客户端缓存之HTTP协议
数据回发时,维护ASP.NET Tree控件位置
获得DataGridViewCheckBoxColumn的状态
GridView显示主细表并添加打开、关闭功能
ASP.NET 2.0防止同一用户同时登陆
asp.net中对数据库表插入null空值的问题
IIS运行不了ASP.NET的解决办法
ASP.NET实现投票结果的图片进度条显示
实例:asp.net生成曲线图的过程
ASP.NET2.0中TextBox的两个有趣的属性

ASP.NET 中的 asp.net datalist 用法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 148 ::
收藏到网摘: n/a

asp.net datalist 用法,需要的朋友可以参考下。 设计模版:
页眉
<HeaderTemplate>
</HeaderTemplate>
页脚
<FooterTemplate>
</FooterTemplate>
数据记录
<ItemTemplate>
</ItemTemplate>
<AlternatingItemTemplate> 交替显示项
</AlternatingItemTemplate>
<SelectedItemTemplate>选中时的显示方式
</SelectedItemTemplate>
<EditItemTemplate> 编辑时的显示方式
</EditItemTemplate>
<SeparatorTemplate> 数据记录分隔符
</SeparatorTemplate>
编辑模版,里面可以嵌入控件,绑定数据。
<ItemTemplate>
<table>
<tr>
<td><%# DataBinder.Eval(Container.DataItem, "持股名称") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "市值", "{0:n}") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "净值", "{0:n}") %></td>
</tr>
</table>
</ItemTemplate>
设置外观
RepeatLayout 属性设置显示方式
RepeatDirection 显示方向
RepeatColumns 列数
事件
加入模版列的按钮会将其click事件反升到 ItemCommand 事件,也可设置 CommandName
来响应不同的事件,如设为:edit,即引发EditCommand()等。
注:若设为:select 则会引发SelectedIndexChanged 和ItemCommand事件
SelectedItemTemplate模版; 添加详细信息的控件,当用户选择了该项,选择模版则显示。
private void DataList1_ItemCommand(……)
{ switch(e.CommandName)
{
case "select":
this.DataList1.SelectedIndex=e.Item.ItemIndex;
string s=(string)this.DataList1.DataKeys[e.Item.ItemIndex];
//在此获得该条记录的详细数据,在SelectedItemTemplate模版里显示。
break;
case "unselect":
this.DataList1.SelectedIndex=-1;
break;
}
this.DataList1.DataBind();//一定要
}
EditItemTemplate模版
编辑:
this.DataList1.EditItemIndex=e.Item.ItemIndex;
this.DataList1.DataBind();
更新:
得到主键
string s=(string)this.DataList1.DataKeys[e.Item.ItemIndex];
得到模版里的控件
TextBox box=(TextBox)e.Item.FindControl("TextBox1");
更新记录
this.DataList1.DataBind();
取消:
this.DataList1.EditItemIndex=-1;
this.DataList1.DataBind();
删除项
一次勾选多条记录,一次删除
复制代码 代码如下:

foreach(DataListItem i in this.DataList1.Items)
{
bool IsChecked=((CheckBox)i.FindControl("deletectr")).Checked;
if(IsChecked)
{
string s=(string)this.DataList1.DataKeys[e.Item.ItemIndex];
删除操作 }
}

运行中自定义DataList控件
复制代码 代码如下:

//当创建DataList控件中的任意项时
private void DataList1_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
switch(e.Item.ItemType)
{ case ListItemType.Header:
e.Item.ForeColor=Color.Red;
e.Item.BackColor=Color.Black;
break;
case ListItemType.Item:
e.Item.BackColor=Color.Black;
break;
}
}
//当模版中的项被数据绑定时发生,数据被显示到客户端前加以访问的最后机会
private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if((e.Item.ItemType==ListItemType.Header)||(e.Item.ItemType==ListItemType.Item))
{
System.Data.Common.DbDataRecord drv=
(System.Data.Common.DbDataRecord)e.Item.DataItem;
if((decimal)drv["库存量"]<1000)
{
e.Item.ForeColor=Color.Red;
}
}
}

另种方式
复制代码 代码如下:

if((e.Item.ItemType==ListItemType.Header)||(e.Item.ItemType==ListItemType.Item))
{
DataRowView drv=(DataRowView)e.Item.DataItem;
string department=(string)drv["部门"];
switch(department)
{ case "销售部":
e.Item.BackColor=Color.Black;
break;
case "技术部":
e.Item.BackColor=Color.Red;
break; }
}