|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!ASP.NET控件分二年夜类,分离在
◆System.Web.UI.WebControls
◆System.Web.UI.HtmlControls
定名空间下,前者承继自WebControl,后者承继自HtmlControl,这二个类又都承继自System.Web.UI.Control
额, windows平台,不管你处置甚么开辟,终极都必要有人挪用loadlibrary.dll.那末ASP.NET控件,不管你利用甚么控件,终极都要挪用Render.
实在做为前台开辟,这些控件年夜部分不是那末好用.
1.起首会天生长长长长的ID,出格是面页镶套有控件的时分,一是会让你终极的HTML代码
收缩,别的和js共同的时分逝世了贫苦,要和js交互必要写一堆<%=Control.ClientID%>,没举措,ASP.NET非要好心的匡助我们办理ID抵触
的成绩.这个ID为何反面终极天生的ID分隔呢,多是事先做这套控件的时分javascript还没有如今这么壮大,被ms疏忽了.
2.另有多天生一个span的成绩,即不w3c,又倒霉于排版.写CSS的时分要思索夹在两头不尴不尬的span.
3.form成绩,良多表单等控件,要用到server端form,当而面有多个form的时分,只能把个中的一些form用js交互了,form在URL重写的时分
另有个成绩,天生的不是URL重定向后路径,server端处置这又必要重写form
4.关于老手另有长长的_VIEWSTATE
良多时分,我们编写前台代码的时分,只是必要复杂的出现出来,不必要长长的ID,不必要span,不必要_VIEWSTATE,仅仅必要几行洁净的
HTML标签,可是基本没有选项或属性设置,要末全体给你,要末全不给 .固然我们能够像asp,和ASP.NET那样来编写代码,可是既然供应了
老是要用的.
WebControl也带来必定的天真性,如今ASP.NETweb开辟,基础都分是N层架构, 假如这些代码都在逻辑层输入,
不修正源代码就没举措变动了,<asp:HyperLinkrunat="server"ID="link">毗连笔墨</asp:HyperLink> 好比如许的,复杂的个改毗连笔墨
模板等属性.别的,表格控件用在背景编纂数据等也是相称便利. 可是用在前台,GridView之类的计划成美工切好的图,相对的膂力活.
有些人利用控件都快有强制症了,前台复杂的显现都要用GridView,明显StringBuilder拼集又简便,又高效么.
头几天碰着一个奇异的成绩,想做一个效果,鼠标挪动到图片上,高亮显现边框,美工做好到场到代码中,逝世活没效果,找半天不晓得怎样回
事,厥后偶然中发明一切的Image控件,主动加上了style="border-width:0px;", 好吧,后处台处 Image.Attributes.Remove("style");
仍是有style="border-width:0px;"在加上Image.Attributes.Clear();仍旧有style="border-width:0px;",决对是个脑残的计划,也许是为了
办理夹在a标志中的img标志默许的1px的border的成绩吧,但是这就没举措用css来处置Image的border属性了.
我最经常使用的ASP.NET控件:
◆literal 洁净,便利.拼集HTML代码,js代码
◆repeater 洁净的列表
◆placeholder把持显现逻辑
最脑残的控件:
◆Image缘故原由见下面一条
最没代价的控件:
◆labelspan套literal就好了,款式交给美工往办理,看不出有甚么有用的代价.
难用的控件:
◆datalist,gridview 天生div或列表结构好累(仅仅指前台)
其他控件视场所而定.
别的HtmlControl和WebControl的区分,网上有如许说的,纯属误导,其实看不下往了,注释一下
1.利用起来也相称便利,举个复杂的例子,比方Button的天生:
Html控件是将复杂控件汇合全体弄到页面中,用到哪一个功效,就设置一上司性,以下:
<inputtype=submit/button/textrunat=server>
如许会占用相称年夜的ASP.NET控件资本
这个纯属误导,还传播很广.终极都是天生HTML标签,input之类的跟本不必要将复杂控件汇合合部弄到页面中,只是终极天生一个标签罢了,要说差别,也只是HtmlControl和WebControl基类之间的差别.
2.Web控件具有回送功效,可以用ViewState保持控件的形态.Html控件则不克不及,当点击页面的操纵,其形态就会丧失.
protectedvirtualvoidLoadViewState(objectsavedState);protectedvirtualobjectSaveViewState()
实在这二个界说在System.Web.UI.Control基类中,只是WebControl重写了这二个办法,但HtmlControl里没有对这二个办法举行重写,但这不即是下面的说法
3.Html控件与Web控件最年夜的区分是它们对事务处置的办法分歧。关于Html窗体控件,当激发一个事务时,扫瞄器会处置它。但关于Web控件,事务仅由扫瞄器天生,但扫瞄器不会处置它,客户端要给服务器发个信息,告知服务器处置事务。
这是搅浑了server事务和客户端剧本事务,不管是完成自WebControl仍是HtmlControl都能够触发Server端事务 处置server端事务只需完成了IPostBackEventHandler接口的控件,都能够.
也许唯一可以让世人留恋Java的理由就剩下它的王牌——跨平台。 |
|