zoukankan      html  css  js  c++  java
  • 关于《asp.net下web控件点评》中的一些看法

    前不久看了园友的一篇文章《asp.net下web控件点评》,地址如下http://www.cnblogs.com/windinwing/archive/2009/08/17/1547803.html,主要是分析了一下web控件的优劣势。文章说的很在理,也引发了我的一些思考。这几天做一个网站,遇到一些里面所说的问题,大部分是和作者一样的烦恼,当然也有些不同的看法。

    文中的第四点如下:
    Title4.对于新手还有长长的_VIEWSTATE

    很多时候,我们编写前台代码的时候,只是需要简单的呈现出来,不需要长长的ID,不需要span,不需要_VIEWSTATE,仅仅需要几行干净的
    HTML标签,但是根本没有选项或属性设置,要么全部给你,要么全不给 .虽然我们可以像asp,和asp.net那样来编写代码,但是既然提供了
    总是要用的.

    其实这一点是可以通过控制web控件都有的EnableViewState="False"的属性来控制是否产生ViewState。不过,首先,每个页面控件一多,这么做就显得麻烦了;其次,有时根据页面的逻辑,有些控件还不能将属性设为false,必须得保存控件的状态,尤其在使用AJAX技术的时候,否则页面一回调,内容就丢失了。

    其次,文中也提到关于Image控件的一个BUG,如下:
    Title前几天碰到一个奇怪的问题,想做一个效果, 鼠标移动到图片上,高亮显示边框,美工做好加入到代码中,死活没效果,找半天不知道怎么回

    事,后来无意中发现所有的Image控件,自动加上了style="border-0px;", 好吧,后处台处 Image.Attributes.Remove("style");
    还是有style="border-0px;"在加上Image.Attributes.Clear();仍然有style="border-0px;",决对是个脑残的设计,大概是为了

    解决夹在a标记中的img标记默认的1px的border的问题吧,可是这就没办法用css来处理Image的border属性了.

    以前其实不大常用Image控件,所以也没有特别留意这个问题,只是觉得微软应该不会这么失败。这几天做东西,刚好用到了Image控件,刚好也产生了同样的问题,通过设CSS样式表,始终无法把边框给弄出来。后来到页面上一看Image控件的属性,就明白了。
    首先,BorderStyle属性默认是"NotSet",这样通过服务器一解析,肯定会生成style="border-0px;"的代码,所以无论怎么改样式表,边框也无法解析出来,因为样式优先级,最先优先的是写在控件HTML代码的style属性。
    其次,设为BorderStyle="Solid"后,依然没有效果,因为BorderWidth属性仍然没有,解析后仍然会出现style="border-0px;"的代码,只需要将其设为BorderWidth="1px",此时边框就能解析出来了。然后再根据需要处理样式表就可以控制了。

    别的就暂时没有了。
    微软提供的这些自带控件,应该是考虑的比较全面的,有他们的优势,不过在实际应用中,需要我们花点脑筋来解决怎么样使用。但是缺点也是很明显的,主要就是固化的比较死,不好灵活运用。作为我个人来说,我还是比较喜欢用他们提供的自带控件的。
    小小意见,和大家共勉。

    Difficulty of making decision depends on what to lose not gain

  • 相关阅读:
    阿里P8架构师谈:阿里双11秒杀系统如何设计?
    秒杀系统设计的知识点
    秒杀系统架构优化思路
    秒杀系统解决方案
    Entity Framework Code First (七)空间数据类型 Spatial Data Types
    Entity Framework Code First (六)存储过程
    Entity Framework Code First (五)Fluent API
    Entity Framework Code First (四)Fluent API
    Entity Framework Code First (三)Data Annotations
    Entity Framework Code First (二)Custom Conventions
  • 原文地址:https://www.cnblogs.com/Showshare/p/1549406.html
Copyright © 2011-2022 走看看