程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net datalist 用法

asp.net datalist 用法

編輯:ASP.NET基礎
設計模版:
頁眉
<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; }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved