仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 616|回复: 10
打印 上一主题 下一主题

[学习教程] ASP教程之在Repeater控件中创立可埋没地区

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:58:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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的捆绑而显现出来;
海妖 该用户已被删除
沙发
发表于 2015-1-17 11:13:58 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
山那边是海 该用户已被删除
板凳
发表于 2015-1-20 05:18:19 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
透明 该用户已被删除
地板
发表于 2015-1-21 07:04:56 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
再见西城 该用户已被删除
5#
发表于 2015-1-30 10:30:38 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
变相怪杰 该用户已被删除
6#
发表于 2015-2-6 09:57:32 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
第二个灵魂 该用户已被删除
7#
发表于 2015-2-15 22:41:53 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
因胸联盟 该用户已被删除
8#
发表于 2015-3-4 15:51:05 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-11 20:19:34 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
精灵巫婆 该用户已被删除
10#
发表于 2015-3-19 11:28:50 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
金色的骷髅 该用户已被删除
11#
发表于 2015-3-27 22:13:12 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 14:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表