ASP.NET网页编程之利用嵌套的Repeater控件显现分级数据
那做企业软件是不是最好用J2EE?控件|数据|显现简介本文形貌怎样利用嵌套的Repeater控件来显现分级数据。固然了,你也能够将这一手艺使用到其他的列表绑定控件上往,好比DataGrid包括DataGrid,DataList包括DataList等等的组合。
绑定到父表
1.增加一个新的WebForm到使用程序项目中,称号为Nestedrepeater.ASPx.
2.从工具箱托动一个Repeater控件到这个页面上,设定其ID属性为parent.
3.切换到HTML视图.
4.选中以下<itemtemplate>代码,复制到Repeater控件对应的地位。注重,粘贴的时分请利用“粘贴为html”功效。这些语句包括了数据绑定语法,很复杂。
<itemtemplate>
<b><%#DataBinder.Eval(Container.DataItem,"au_id")%></b><br>
</itemtemplate>
5.翻开Nestedrepeater.aspx.cs这个代码分别文件。降以下代码增加到Page_Load事务中,其感化是创建一个到Pubs(这个数据库是SQLServer的演示数据库。别的在安装.netFrameworksdk的时分也会安装这个数据库)数据库的毗连,并绑定Authors表到Repeater控件
publicvoidPage_Load()
{
SqlConnectioncnn=newSqlConnection("server=(local);database=pubs;uid=sa;pwd=;");
SqlDataAdaptercmd1=newSqlDataAdapter("select*fromauthors",cnn);
DataSetds=newDataSet();
cmd1.Fill(ds,"authors");
//这里将要拔出子表的数据绑定
parent.DataSource=ds.Tables["authors"];
Page.DataBind();
cnn.Close();
}
6.在文件的头部增加上面的称号空间
usingSystem.Data.SqlClient;
7.依据你本人的情形修正一下毗连字符串
8.保留并编译使用程序
9.在扫瞄器中翻开这个页面,输入了局相似于上面的格局
172-32-1176
213-46-8915
238-95-7766
267-41-2394
...
绑定到子表
1.在页面的HTML视图中,增加以下代码。其目标是增添子Repeater控件到父Repeater的项目模板中,构成嵌套。
<asp:repeaterid="child"runat="server">
<itemtemplate>
<%#DataBinder.Eval(Container.DataItem,"["title_id"]")%><br>
</itemtemplate>
</asp:repeater>
2.设置子Repeater控件的DataSource属性:
<asp:repeater...datasource=<%#((DataRowView)Container.DataItem)
.Row.GetChildRows("myrelation")%>>
3.在页面顶部增加以下指令(请注重,是在.aspx文件中):
<%@ImportNamespace="System.Data"%>
在.cs文件中,将Page_Load中的正文部分(//这里将要拔出子表的数据绑定)交换成以下代码:
SqlDataAdaptercmd2=newSqlDataAdapter("select*fromtitleauthor",cnn);
cmd2.Fill(ds,"titles");
ds.Relations.Add("myrelation",
ds.Tables["authors"].Columns["au_id"],
ds.Tables["titles"].Columns["au_id"]);
4.保留并编译使用程序。
.在扫瞄器中观察修正后的页面。显现格局相似于上面的格局:
172-32-1176
PS3333
213-46-8915
BU1032
BU2075
238-95-7766
PC1035
267-41-2394
BU1111
TC7777
...
完全的代码
Nestedrepeater.aspx
<%@PageLanguage=C#Inherits="yourprojectname.nestedrepeater"%>
<%@ImportNamespace="System.Data"%>
<html>
<body>
<formrunat=server>
<!--startparentrepeater-->
<asp:repeaterid="parent"runat="server">
<itemtemplate>
<b><%#DataBinder.Eval(Container.DataItem,"au_id")%></b><br>
<!--startchildrepeater-->
<asp:repeaterid="child"datasource=<%#((DataRowView)Container.DataItem)
.Row.GetChildRows("myrelation")%>runat="server">
<itemtemplate>
<%#DataBinder.Eval(Container.DataItem,"["title_id"]")%><br>
</itemtemplate>
</asp:repeater>
<!--endchildrepeater-->
</itemtemplate>
</asp:repeater>
<!--endparentrepeater-->
</form>
</body>
</html>
Nestedrepeater.aspx.cs
usingSystem;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Web;
usingSystem.Web.SessionState;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
namespaceyourprojectname
{
publicclassnestedrepeater:System.Web.UI.Page
{
protectedSystem.Web.UI.WebControls.Repeaterparent;
publicnestedrepeater()
{
Page.Init+=newSystem.EventHandler(Page_Init);
}
publicvoidPage_Load(objectsender,EventArgse)
{
//CreatetheconnectionandDataAdapterfortheAuthorstable.
SqlConnectioncnn=newSqlConnection("server=(local);database=pubs;uid=sa;pwd=;");
SqlDataAdaptercmd1=newSqlDataAdapter("select*fromauthors",cnn);
//CreateandfilltheDataSet.
DataSetds=newDataSet();
cmd1.Fill(ds,"authors");
//CreateasecondDataAdapterfortheTitlestable.
SqlDataAdaptercmd2=newSqlDataAdapter("select*fromtitleauthor",cnn);
cmd2.Fill(ds,"titles");
//CreatetherelationbewtweentheAuthorsandTitlestables.
ds.Relations.Add("myrelation",
ds.Tables["authors"].Columns["au_id"],
ds.Tables["titles"].Columns["au_id"]);
//BindtheAuthorstabletotheparentRepeatercontrol,andcallDataBind.
parent.DataSource=ds.Tables["authors"];
Page.DataBind();
//Closetheconnection.
cnn.Close();
}
privatevoidPage_Init(objectsender,EventArgse)
{
InitializeComponent();
}
privatevoidInitializeComponent()
{
this.Load+=newSystem.EventHandler(this.Page_Load);
}
}
}有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到java编译器那么简易。 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。 大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。 HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了. 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案. 使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
页:
[1]