ASP教程之在Repeater控件中创立可埋没地区
结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。创立|控件在WEB使用中,怎样才干使使用高效力呢?怎样才干吸援用户呢?这切实其实是个年夜学问,页面的内容,色搭配等都非常主要。但不成无视的是,多半情形下,关于数据的出现体例也是非常主要的。因为web使用的范围不休增年夜,数据也愈来愈多了,偶然候,因为在一个页面同时显现的数据太多,从而形成页面的不美妙,用户因而也会感应厌倦和操纵坚苦。因而,本文将先容使用repeater控件的埋没地区,以到达较好的数据显现效果。避免数据过量加载有良多办法,好比接纳数据分页的办法,又大概接纳master/detail的体例,就是先显现每条数据的次要内容,而关于具体数据,用户只必要点detail的链接就能够了。本文将先容别的一种体例来显现数据,它接纳折叠的埋没体例,当用户必要看每笔记录的具体形貌时,不必要别的翻开链接窗口,而间接在原数据纪录的下方,出现出本来埋没的数据具体材料。如许一来,便利了用户的操纵。我们先来看下实在际效果(http://aspnet.4guysfromrolla.com/demos/collapsibleRepeater.aspx)。接上去,我们看怎样在repeater中完成其效果。
要完成下面的效果,我们必需接纳客户真个剧本手艺,从而完成埋没或展现某个地区。而在IE4.x后,是能够完成该手艺的。好比,<div>标志内的内容,当用户点击时能够静态地埋没起来,而<p>标志内容的内容,也能够当用户挪动鼠标到某特定地区时显现出来。而个中的关头的地方,在于其display和visibility的CSS作风属性。上面的代码显现了其利用办法,当用户点击HIDECONTENT按钮时,则会埋没底本显现的文本,当点击showcontent时,又会显现本来的文本了。
<scriptlanguage="JavaScript">
functionshowHideContent(id,show)
{
varelem=document.getElementById(id);
if(elem)
{
if(show)
{
elem.style.display=block;
elem.style.visibility=visible;
}
else
{
elem.style.display=none;
elem.style.visibility=hidden;
}
}
}
</script>
<divid="someRegion">
Thistextwillbedisplayedorhiddenwhenclickingtheappropriatebuttonbelow...
</div>
<inputtype="button"value="HideContent"
>
<inputtype="button"value="ShowContent">
在下面的javscript代码中,充实使用了HTML元素的display和visiblity属性,并且要注重,这两个属性应当同时利用。起首在button按钮的onclick事务中,挪用了自界说的javscript写的函数showhidecontent,该函数有两个参数,id和show,id暗示要显现大概埋没的地区的称号,好比该例子中,要显现或埋没的地区是<div>标志内的文本,show为布尔值,决意是不是埋没或显现该地区。而在showhidecontent函数中,则依据show的值,把持display和visiblity属性。
分明了下面例子的事理后,上面就能够在repeater控件中使用了。好比,我们要创立一个FAQ问答录,个中有良多用户要扣问的成绩,则利用下面的办法,能够先将用户的成绩利用repeater控件排列出来,以后当用户点击该成绩时,则会显现出埋没的回覆,非常便利。Repeater的代码片断以下:
<asp:Repeaterid="rptFAQs"runat="server">
<ItemTemplate>
<h2><%#DataBinder.Eval(Container.DataItem,"Description")%></h2><br/>
<b>SubmittedBy:</b><%#DataBinder.Eval(Container.DataItem,"SubmittedByName")%><br/>
<b>Views:</b><%#DataBinder.Eval(Container.DataItem,"ViewCount","{0:d}")%><br/>
<b>FAQ:</b><br/>
<%#DataBinder.Eval(Container.DataItem,"Answer")%>
</ItemTemplate>
</asp:Repeater>
我们能够看到,下面的代码只是形貌了静态的一个repeater。接上去,我们要在repeater的模版列长进行一下修正,以满意请求。
起首,我们为每笔记录都创立两个<div>标志,一个显现FAQ的成绩,另外一个则显现成绩的谜底,并且要为每个<div>标志赋值一个独一的id,每笔记录中,显现成绩的<div>标志的id记作hindex(index为Repeater控件中每项的id号,使用itemindex),而显现谜底的<div>标志的id记作dindex。代码以下:
<scriptlanguage="JavaScript">
functionToggleDisplay(id)
{
varelem=document.getElementById(d+id);
if(elem)
{
if(elem.style.display!=block)
{
elem.style.display=block;
elem.style.visibility=visible;
}
else
{
elem.style.display=none;
elem.style.visibility=hidden;
}
}
}
</script>
<style>
.header{font-size:larger;font-weight:bold;cursor:hand;cursor:pointer;
background-color:#cccccc;font-family:Verdana;}
.details{display:none;visibility:hidden;background-color:#eeeeee;
font-family:Verdana;}
</style>
<asp:Repeaterid="rptFAQs"runat="server">
<ItemTemplate>
<divid=h<%#DataBinder.Eval(Container,"ItemIndex")%>class="header"
>
<%#DataBinder.Eval(Container.DataItem,"Description")%>
</div>
<divid=d<%#DataBinder.Eval(Container,"ItemIndex")%>class="details">
<b>SubmittedBy:</b><%#DataBinder.Eval(Container.DataItem,"SubmittedByName")%><br/>
<b>Views:</b><%#DataBinder.Eval(Container.DataItem,"ViewCount","{0:d}")%><br/>
<b>FAQ:</b><br/>
<%#DataBinder.Eval(Container.DataItem,"Answer")%>
</div>
</ItemTemplate>
</asp:Repeater>
我们重点来看下后半部分的代码,个中
<divid=h<%#DataBinder.Eval(Container,"ItemIndex")%>class="header"
>会将每笔记录的成绩部分,包裹在相似<divid=h1>,<divid=h2>之类的标志内,当点击时,则挪用toggledisplay函数,在该函数内,看传进的参数是不是是必要显现的地区(注重,经由过程
varelem=document.getElementById(d+id);)一句举行判别,是的话则设置display和visiblity属性显现,不然不显现。
</p>Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来; 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助... 不能只是将它停留在纸上谈兵的程度上。 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
页:
[1]