
設計模版:
頁眉
<HeaderTemplate>
</HeaderTemplate>
頁腳
<FooterTemplate>
</FooterTemplate>
數(shù)據(jù)記錄
<ItemTemplate>
</ItemTemplate>
<AlternatingItemTemplate> 交替顯示項
</AlternatingItemTemplate>
<SelectedItemTemplate>選中時的顯示方式
</SelectedItemTemplate>
<EditItemTemplate> 編輯時的顯示方式
</EditItemTemplate>
<SeparatorTemplate> 數(shù)據(jù)記錄分隔符
</SeparatorTemplate>
編輯模版,里面可以嵌入控件,綁定數(shù)據(jù)。
<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 列數(shù)
事件
加入模版列的按鈕會將其click事件反升到 ItemCommand 事件,也可設置 CommandName
來響應不同的事件,如設為:edit,即引發(fā)EditCommand()等。
注:若設為:select 則會引發(fā)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];
//在此獲得該條記錄的詳細數(shù)據(jù),在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控件
代碼如下:
//當創(chuàng)建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;
}
}
//當模版中的項被數(shù)據(jù)綁定時發(fā)生,數(shù)據(jù)被顯示到客戶端前加以訪問的最后機會
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 "技術(shù)部":
e.Item.BackColor=Color.Red;
break; }
}
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com