|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
结论:和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的捆绑而显现出来; |
|