仓酷云

标题: ASP.NET教程之ASP.NET用Repeater控件显现数据 [打印本页]

作者: 金色的骷髅    时间: 2015-1-16 22:37
标题: ASP.NET教程之ASP.NET用Repeater控件显现数据
因为二次编译器太复杂,那么建议只是在安装程序的时候编译一次,而不类似java那样运行就编译。并且我觉得,一次痛苦,总比多次低效率要舒服多了。asp.net|控件|数据|显现假如你正在利用ASP.NET,你必定对DataGrid控件十分熟习。DataGrid控件供应了各类特征,经由过程这些特征能够很简单地在一个Web页面上以列表情势显现数据。可是,假如你不想利用HTML表格情势呢?此时,可使用一个DataGrid的一个不为人知的兄弟控件,即Repeater控件。Repeater控件供应显现你所必要数据的天真性。

Repeater控件是甚么?

Repeater是一个可反复操纵的控件,也就是说,它经由过程利用模板显现一个数据源的内容,而你能够很简单地设置这些模板。Repeater包括如题目和页脚如许的数据,它能够遍历一切的数据选项并使用到模板中。

与DataGrid和DataList控件分歧,Repeater控件并非由WebControl类派生而来。以是,它不包含一些通用的格局属性,好比把持字体,色彩,等等。但是,利用Repeater控件,HTML(大概一个款式表)大概ASP.NET类能够处置这些属性。

HTML在那里?
Repeater控件与DataGrid(和DataList)控件的次要区分是在于怎样处置HTML。ASP.NET创建HTML代码以显现DataGrid控件,但Repeater同意开辟职员决意怎样显现数据。以是,你能够选择将数据显现在一个HTML表格中大概一个按次列表中。这次要取决于你的选择,但你必需将准确的HTML拔出到ASP.NET页面中。

模板与DataList一样,Repeater控件只撑持模板。以下的模板可供选择:

AlternatingItemTemplate:指定怎样显现每别的选项。
ItemTemplate:指定怎样显现选项。(AlternatingItemTemplate能够掩盖这一模板。)
HeaderTemplate:创建怎样显现题目。
FooterTemplate:创建怎样显现页脚。
SeparatorTemplate:指定怎样显现分歧选项之间的分开符。
你可使用这些模板来显现你但愿的数据。独一具有强迫性的模板是ItemTemplate,一切别的的模板都是具有选择性的。

数据
关于处置一个数据源,Repeater控件具有与DataGrid与DataList不异的属性:

DataMember:取得大概设置与Repeater控件绑定的响应DataSource属性的表格。

DataSource:取得大概设置为Repeater显现供应数据的数据源。

除此以外,另有一个Items属性,你能够经由过程这一属性编程会见Repeater数据中单一选项。它前往一个RepeaterItemCollection工具,为一组RepeaterItem工具的汇合,代表Repeater数据的每行。

ASP.NETWeb数据控件另有别的一个个性:它们都利用DataBind办法来天生用户界面。挪用这一办法能够前往并显现数据(假定DataSource和DataMember属性设置准确)。在检察DataBind办法之前,我们先看看怎样在一个Web页面中利用一个Repeater控件。

利用Repeater控件
利用Repeater控件的第一步骤是决意我们将要利用的数据源和字段。比方,我们将要利用SQLServerNorthwind数据库中的Employees列表。Web页面将显现职工的完全名字,地点,和德律风号码。HTML将利用DIV标志,用Repeater模板来分开内容。上面是Web页面的HTML内容:

<%@Pagelanguage="c#"%>
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.SqlClient"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html><head>
<title>Builder.comRepeaterExample</title>
<metaname="GENERATOR"Content="MicrosoftVisualStudio.NET7.1">
<metaname="CODE_LANGUAGE"Content="C#">
<style>
.alternate{
FONT-WEIGHT:bold;
COLOR:black;
FONT-FAMILY:Verdana,TimesNewRoman;
BACKGROUND-COLOR:yellow
}
.row{
FONT-WEIGHT:bold;
COLOR:black;
FONT-FAMILY:Verdana,TimesNewRoman;
BACKGROUND-COLOR:white
}
.footer{
FONT-WEIGHT:bold;
COLOR:red;
FONT-FAMILY:Verdana,TimesNewRoman;
BACKGROUND-COLOR:gray
}
.header{
FONT-WEIGHT:bold;
COLOR:yellow;
FONT-FAMILY:Verdana,TimesNewRoman;
BACKGROUND-COLOR:gray
}
.box{
BORDER-RIGHT:bluegroove;
BORDER-TOP:bluegroove;
DISPLAY:block;
VERTICAL-ALIGN:baseline;
OVERFLOW:auto;
BORDER-LEFT:bluegroove;
CURSOR:wait;
BORDER-BOTTOM:bluegroove;
FONT-FAMILY:verdana;
TEXT-ALIGN:center
}
body{
background:#333;
}
</style>
<scriptlanguage="C#"runat="server">
privatevoidPage_Load(objectsender,System.EventArgse){
if(!IsPostBack){
DataSetdset=newDataSet();
stringconn="server=(local);InitialCatalog=Northwind;UID=ctester;PWD=password";
stringqry="SELECTfirstname,lastname,address,city,region,postalcode,
homephoneFROMemployees";
SqlDataAdaptersda=newSqlDataAdapter(qry,conn);
sda.Fill(dset);
Repeater1.DataSource=dset.Tables[0].DefaultView;
Repeater1.DataBind();
}}
</script></head>
<bodyMS_POSITIONING="GridLayout"bgColor="#00cc99">
<formid="Form1"method="post"runat="server">
<divclass="box">
<asp:Repeaterid="Repeater1"runat="server">
<HeaderTemplate>
<divclass="header"id="header">NorthwindEmployees</div>
</HeaderTemplate>
<SeparatorTemplate><hr/></SeparatorTemplate>
<ItemTemplate><divclass="row">
<%#((DataRowView)Container.DataItem)["FirstName"]%>
<%#((DataRowView)Container.DataItem)["LastName"]%><br>
<%#((DataRowView)Container.DataItem)["Address"]%><br>
<%#((DataRowView)Container.DataItem)["City"]%>,
<%#((DataRowView)Container.DataItem)["Region"]%>
<%#((DataRowView)Container.DataItem)["PostalCode"]%><br>
<%#((DataRowView)Container.DataItem)["HomePhone"]%>
</div></ItemTemplate>
<AlternatingItemTemplate><divclass="alternate">
<%#((DataRowView)Container.DataItem)["FirstName"]%>
<%#((DataRowView)Container.DataItem)["LastName"]%><br>
<%#((DataRowView)Container.DataItem)["Address"]%><br>
<%#((DataRowView)Container.DataItem)["City"]%>,
<%#((DataRowView)Container.DataItem)["Region"]%>
<%#((DataRowView)Container.DataItem)["PostalCode"]%><br>
<%#((DataRowView)Container.DataItem)["HomePhone"]%>
</div></AlternatingItemTemplate>
<FooterTemplate><divclass="footer">
<%#((DataView)Repeater1.DataSource).Count+"employeesfound."%>
</div></FooterTemplate>
</asp:Repeater></div></form></body></html>


能够注重到,每一个Repeater行中款式表把持着笔墨的表面。除此以外,在网页内容中还增加了一个文本框。嵌进式C#代码从Repeater的数据源中猎取响应的列。每一个数据项都被转换成一个DataRowView工具以便显现。

这一页面并非利用ASP.NET的“背景代码”性子。因为这一缘故原由,页面援用了两个System.Data和System.Data.SqlClient空间称号。这关于利用DataRowView工具和与SQLServer交互会见是必须的。

当挪用页面时就会触发Page_Load事务。此时会把数据源毗连到Repeater控件上,并查询数据库。每Repeater行的代码从潜伏数据源中载进数据,而且Web页面显现这些数据。

这一计划利用了款式表(和HTMLdiv标志),以是变动表面只必要变动需要的款式表代码。为了进一步地将数据和显现分别,你能够在一个自力文件中存储款式表,并以一个HTMLLINK标志来援用它们。

一个很好的选择
当与其他ASP.NET开辟者交换时,开辟职员对Repeater控件知之甚少,这真让我感应惊奇。固然它不如DataGrid功效壮大,但它在很多场所中仍旧供应了杰出的天真性。Repeater控件短少编纂和排序功效,但能够经由过程进一步编程而完成。
c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。
作者: 第二个灵魂    时间: 2015-1-19 18:57
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
作者: 若相依    时间: 2015-1-26 21:10
ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。
作者: 兰色精灵    时间: 2015-2-4 20:39
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
作者: 谁可相欹    时间: 2015-2-10 08:20
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
作者: 不帅    时间: 2015-3-1 04:36
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
作者: 深爱那片海    时间: 2015-3-17 07:11
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
作者: 愤怒的大鸟    时间: 2015-3-24 02:03
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2