生活随笔
收集整理的這篇文章主要介紹了
数据列表DataList模板之实例
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1,數(shù)據(jù)列表DataList與重復(fù)列表Repeator很類似,但是DataList應(yīng)用更廣泛,因?yàn)樗梢赃x擇和修改數(shù)據(jù)項(xiàng)的內(nèi)容。
DataList的數(shù)據(jù)顯示和布局與Repeator控件一樣都是通過(guò)“模板”控制的。
(注:模板至少要定義一個(gè)“數(shù)據(jù)項(xiàng)模板”(ItemTemplate)來(lái)指定顯示布局)
?
2,DataList支持的模板類型:
| 模板 | 名稱 | 說(shuō)明 |
| ItemTemplate | 數(shù)據(jù)項(xiàng)模板 | 必需的,它定義了數(shù)據(jù)項(xiàng)及其表現(xiàn)形式 |
| AlternatingItemplate | 數(shù)據(jù)項(xiàng)交替模板 | 為了使相鄰的數(shù)據(jù)項(xiàng)能夠有所區(qū)別,可以定義交替模板,它使得相鄰的數(shù)據(jù)項(xiàng)看起來(lái)明顯不同,缺省情況下,他和ItemTemplate模板定義一致,即卻剩下相鄰數(shù)據(jù)無(wú)表示區(qū)分 |
| SeparatorTemplate | 分隔符模板 | 定義數(shù)據(jù)項(xiàng)之間的分隔符 |
| SelectedItemTemplate | 選中項(xiàng)模板 | 定義被選擇的數(shù)據(jù)項(xiàng)的表現(xiàn)內(nèi)容與布局形式,當(dāng)未定義“SelectedItemTemplate”模板時(shí),選中項(xiàng)的表現(xiàn)內(nèi)容與形式無(wú)特殊化,由ItemTemplate模板定義所決定 |
| EditItemTemplate | 修改選項(xiàng)模板 | 定義即將被修改的數(shù)據(jù)項(xiàng)的顯示內(nèi)容與布局形式,缺省情況下,修改選項(xiàng)模板就是數(shù)據(jù)項(xiàng)模板(ItemTemplate)的定義 |
| HeaderTemplate | 報(bào)頭定義模板 | 定義表頭變現(xiàn)形式 |
| FooterTemplate | 表尾定義模板 | ? |
實(shí)例: 用到的數(shù)據(jù)庫(kù)charge_sys中的student_Info表: | studentNo | studentName | grade | cash |
| 1 | 韓學(xué)楊 | 大一 | 123.000 |
| 2 | 韓寒 | 大二 | 123.000 |
| 3 | 韓紅 | 大三 | 222.000 |
| 4 | 韓學(xué)敏 | 大四 | 20000.000 |
?
程序在Default.aspx中: Default.aspx中: [html] view plain
copy <%@?Page?Language="C#"?AutoEventWireup="true"?CodeFile="Default.aspx.cs"?Inherits="_Default"?%>????<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">????<html?xmlns="http://www.w3.org/1999/xhtml">??<head?runat="server">??????<title>DataList控件練習(xí)</title>??</head>??<body>??????<form?id="form1"?runat="server">????<div>?????????????????<asp:DataList?ID="DataList1"?runat="server"?BackColor="LightGoldenrodYellow"???????????????BorderColor="Tan"?BorderWidth="1px"?CellPadding="2"?ForeColor="Black"???????????????oncancelcommand="DataList1_CancelCommand"?oneditcommand="DataList1_EditCommand"???????????????onitemcommand="DataList1_ItemCommand"?onupdatecommand="DataList1_UpdateCommand"???????????????Width="308px">???????????????<%--修改選項(xiàng)模板--%>??????????????<EditItemTemplate>?????????????????????????????????????<asp:LinkButton?ID="LinkButton2"?runat="server"?CommandName="update">保存</asp:LinkButton>????????????????????????????????????<asp:LinkButton?ID="LinkButton3"?runat="server"?CommandName="cancel">取消</asp:LinkButton>?????????????????????????????????????<%#DataBinder.Eval(Container.DataItem,"studentNo")?%>???????????????????????????????????<asp:TextBox?ID="txtGrade"?runat="server"???????????????????????Text='<%#?DataBinder.Eval(Container.DataItem,"grade")?%>'></asp:TextBox>??????????????</EditItemTemplate>????????????????????????????<%--表尾模板樣式?--%>???????????????<FooterStyle?Font-Bold="True"?Font-Italic="False"?Font-Size="18pt"?/>?????????????????????????????????<%--報(bào)頭模板樣式?--%>??????????????<HeaderStyle?Font-Bold="True"?Font-Size="18pt"?/>????????????????????????????<%--數(shù)據(jù)項(xiàng)模板樣式--%>??????????????<ItemStyle?ForeColor="#000066"?/>????????????????????????????<%--報(bào)頭模板--%>???????????????<HeaderTemplate>??????????????????模板頁(yè)眉??????????????????<br?/>???????????????????<hr?/>??????????????</HeaderTemplate>????????????????<%--數(shù)據(jù)項(xiàng)模板--%>??????????????<ItemTemplate>????????????????????????????????????<asp:LinkButton?ID="lBtnShowDetails"?runat="server"?CommandName="select">查看詳細(xì)信息</asp:LinkButton>????????????????????????????????????<asp:LinkButton?ID="LinkButton1"?runat="server"?CommandName="edit">編輯</asp:LinkButton>????????????????????????????????????<%#DataBinder.Eval(Container.DataItem,"studentNo")?%>??????????????</ItemTemplate>?????????????????????????<%--選中項(xiàng)模板--%>??????????????<SelectedItemTemplate>??????????????????學(xué)號(hào):???????????????????????????????????<%#DataBinder.Eval(Container.DataItem,"studentNo")?%>?????????????????????????????<br?/>???????????????????姓名:????????????????????????????????????<%#DataBinder.Eval(Container.DataItem,"studentName")?%>??????????????????<br?/>???????????????????金額:????????????????????????????????????<%#DataBinder.Eval(Container.DataItem,"cash")?%>??????????????</SelectedItemTemplate>????????????????<%--表尾模板?--%>???????????????<FooterTemplate>????????????????<hr?/>????????????????<br?/>????????????????模板頁(yè)腳?????????????</FooterTemplate>??????????</asp:DataList>??????</div>??????</form>??</body>??</html>?? ?
效果圖:
?
Default.aspx.cs中:
[csharp] view plain
copy using?System;??using?System.Collections.Generic;??using?System.Linq;??using?System.Web;??using?System.Web.UI;??using?System.Web.UI.WebControls;??using?System.Data;??using?System.Data.SqlClient;????public?partial?class?_Default?:?System.Web.UI.Page??{??????protected?void?Page_Load(object?sender,?EventArgs?e)??????{??????????if?(!this.IsPostBack)??????????{??????????????this.DataBindToDataList();????????????}????????}????????????private?void?DataBindToDataList()??????{??????????SqlConnection?con?=?DB.createCon();??????????SqlDataAdapter?sda?=?new?SqlDataAdapter();??????????sda.SelectCommand?=?new?SqlCommand("select?*?from?student_Info",?con);??????????DataSet?ds?=?new?DataSet();??????????sda.Fill(ds,?"studentInfo");??????????this.DataList1.DataKeyField?=?"cardno";??????????this.DataList1.DataSource?=?ds.Tables["studentInfo"];??????????this.DataList1.DataBind();????????}??????protected?void?DataList1_ItemCommand(object?source,?DataListCommandEventArgs?e)??????{??????????if?(e.CommandName?==?"select")??????????{??????????????this.DataList1.SelectedIndex?=?e.Item.ItemIndex;??????????????this.DataBindToDataList();???????????????????}??????}??????protected?void?DataList1_EditCommand(object?source,?DataListCommandEventArgs?e)??????{??????????this.DataList1.EditItemIndex?=?e.Item.ItemIndex;??????????this.DataBindToDataList();????????}??????protected?void?DataList1_CancelCommand(object?source,?DataListCommandEventArgs?e)??????{??????????this.DataList1.EditItemIndex?=?-1;??????????this.DataBindToDataList();????????}??????protected?void?DataList1_UpdateCommand(object?source,?DataListCommandEventArgs?e)??????{??????????string?cardNo?=?this.DataList1.DataKeys[e.Item.ItemIndex].ToString();??????????string?grade?=?((TextBox)e.Item.FindControl("txtGrade")).Text;??????????SqlConnection?con?=?DB.createCon();??????????SqlCommand?cmd?=?new?SqlCommand("update?student_Info?set?grade='"?+?grade?+?"'?where?cardno='"?+?cardNo?+?"'",?con);??????????con.Open();??????????cmd.ExecuteNonQuery();??????????this.DataList1.EditItemIndex?=?-1;??????????this.DataBindToDataList();????????}??}?? 運(yùn)行結(jié)果:
頁(yè)面加載:
?
?點(diǎn)擊“查看詳細(xì)信息”按鈕后:
點(diǎn)擊“編輯”按鈕后:
?
總結(jié):“動(dòng)手”才是硬道理
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的数据列表DataList模板之实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。