仓酷云

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

[学习教程] ASP.NET网页设计利用Control Adapters优化Asp.net控件

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

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

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

x
今天去面试,被问到C#中的new关键字,看了那么多的书对new关键字还是有一定认识,回来又把new复习了一遍,发现了许多以前还不知道的细节。asp.net|控件|优化有些时分Asp.net控件默许形态下天生的html代码,不克不及满意一些特定的必要。好比
我们想让用户做一些选择,能够很简单的用以下代码完成
<asp:CheckBoxListrunat="server">
<asp:ListItemText="One"/>
<asp:ListItemText="Two"/>
<asp:ListItemText="Three"/>
</asp:CheckBoxList>
默许形态下CheckBoxList会将这些选项放在一个table标签里,可是大概有一般情形不合适利用table,而必要一个un-orderedlist(ul)。固然我们能够从头写一个承继于CheckBoxList的控件,可是利用ControlAdpater会更简单,而且另有一些分外的优点。
起首看一下完成:
1,写一个承继自WebControlAdapter的类,以下
usingSystem;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.Adapters;
publicclassRadioButtonListAdapter:WebControlAdapter
{
protectedoverridevoidRender(HtmlTextWriterwriter)
{
ListControltargetControl=this.ControlasListControl;
//Ifthecontrolthatthisadapterispointingtoisnot
//aListControl(RadioButtonListorCheckBoxList)then
//wedontwanttochangetherendering.
if(targetControl==null||targetControlisIRepeatInfoUser==false)
{
base.Render(writer);
return;
}
writer.WriteBeginTag("ul");
if(targetControl.CSSClass.Length>0)
{
writer.WriteAttribute("class",targetControl.CssClass);
}
writer.Write(">");
IRepeatInfoUserrepeaterInfo=(IRepeatInfoUser)this.Control;
for(inti=0;i<targetControl.Items.Count;i++)
{
writer.WriteFullBeginTag("li");
repeaterInfo.RenderItem(ListItemType.Item,i,newRepeatInfo(),writer);
writer.WriteEndTag("li");
}
writer.WriteEndTag("ul");
}
}
2,新建一个asp.net文件夹App_Browsers,在个中增加一个.browser文件,增加以下内容
<browsers>
<browserrefID="Default">
<controlAdapters>
<adaptercontrolType="System.Web.UI.WebControls.CheckBoxList"
adapterType="RadioButtonListAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.RadioButtonList"
adapterType="RadioButtonListAdapter"/>
</controlAdapters>
</browser>
</browsers>
好了,统统ok。注重到了没有?我们并没有改动先前的asp.net代码.这就是个十分主要的优点啊。
也许唯一可以让世人留恋Java的理由就剩下它的王牌——跨平台。
admin 该用户已被删除
10#
发表于 2015-3-20 10:49:32 | 只看该作者
这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-13 03:08:12 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-13 03:08:12 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
不帅 该用户已被删除
7#
发表于 2015-3-6 15:16:55 | 只看该作者
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
深爱那片海 该用户已被删除
6#
发表于 2015-2-19 18:22:15 | 只看该作者
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
蒙在股里 该用户已被删除
5#
发表于 2015-2-7 02:14:05 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-1 09:44:31 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-24 11:40:08 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
再见西城 该用户已被删除
沙发
发表于 2015-1-19 09:07:50 来自手机 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 17:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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