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

ASP.NET
asp.net SqlParameter关于Like的传参数无效问题
数据库 数据类型float到C#类型decimal, float数据类型转化无效
google suggest 下拉菜单实现代码(asp.net版本)
asp.net(C#) 动态添加非ASP的标准html控件(如添加Script标签)
asp.net GridView导出到Excel代码
asp.net 开发的一些常用技巧
php 三级联动菜单
ASp.net 文本框(TextBox)计算,判断输入的是否是数字
asp.net 存储过程调用
asp.net 操作XML 按指定格式写入XML数据 WriteXml
asp.net连接数据库 增加,修改,删除,查询代码
VB.net 查询获取数据库数据信息
asp.net 删除,更新数据库方法
.net获取硬件信息_CPU序列号
ASP.NET 页面中动态增加的控件、添加事件
彻底解决ASP.NET MD5加密中文结果和ASP不一致的问题
asp.net结合aspnetpager使用SQL2005的存储过程分页
asp.net 用户控件读取以及赋值
asp.net 弹出警告窗口实现代码
asp.net 枚举文件里面的数字绑定到DropDownList里面去

ASP.NET 中的 asp.net datalist 用法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 48 ::
收藏到网摘: 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; }
}