C#的一些小知识

CSS中的继承

CSS的单位

  • 绝对单位

    相对单位

    英寸in

    字母高em

    厘米cm

    字母x的高ex

    毫米mm

    像素px

    磅pt

    百分比%

  • pt:1pt等于1/72英寸
  • px:像素,计算机屏幕上的一个点
  • em:1em相当于当前字体尺寸,2em相当于当前字体尺寸的2倍。在 CSS 中,em 是非常有用的单位,因为它可以自动适应用户所使用的字体。
  • ex:一个 ex 是一个字体的 x-height。 (x-height 通常是字体尺寸的一半。)
  • %:基于当前字体的一个百分比值

CSS 外边距属性(Margin)

  • 属性

    描述

    margin

    在一个声明中设置所有外边距属性。

    margin-bottom

    设置元素的下外边距。

    margin-left

    设置元素的左外边距。

    margin-right

    设置元素的右外边距。

    margin-top

    设置元素的上外边距。

  • margin 简写属性在一个声明中设置所有外边距属性。该属性可以有 1 到 4 个值。

网页上字体样式

  • CSS是用来规范页面表现形式,主要通过以下三种方式:
    • 元素内联:直接将样式写入元素的style属性,适用于样式不需要复用的场合
    • 页面嵌入:加入到页面的<head>部分,适用于样式在同一个页面中复用

    • 外部引用:将CSS内容写入扩展名为css的文件,在<head>中加入 <link href="css/main.css" rel="stylesheet" type="text/css" />,适用于多个页面共享CSS

      • CssClass属性:用于设置或返回控件的 CSS 样式类。

        • 比如,在main.css文件中定义了字体样式.lbShowTask,此时想要设置控件Label的样式,可以写做<asp:Label ID="lbShowTask" runat="server" CssClass="lbShowTask"/>

  • CSS的font属性:font 简写属性在一个声明中设置所有字体属性
    • font-sytle:规定字体样式,可能的值:

      描述

      normal

      默认值。浏览器显示一个标准的字体样式。

      italic

      浏览器会显示一个斜体的字体样式。

      oblique

      浏览器会显示一个倾斜的字体样式。

      inherit

      规定应该从父元素继承字体样式。

    • font-variant属性设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。可能的值:

      描述

      normal

      默认值。浏览器会显示一个标准的字体。

      small-caps

      浏览器会显示小型大写字母的字体。

      inherit

      规定应该从父元素继承 font-variant 属性的值。

    • font-weight属性设置文本的粗细。可能的值:

      描述

      normal

      默认值。定义标准的字符。

      bold

      定义粗体字符。

      bolder

      定义更粗的字符。

      lighter

      定义更细的字符。

      100,200,300,400,500,600,700,800,900

      定义由粗到细的字符。400 等同于 normal,而 700 等同于 bold。

      inherit

      规定应该从父元素继承字体的粗细。

    • font-size 属性可设置字体的尺寸。可能的值:

      描述

      xx-small,x-small,small,medium,large,x-large,xx-large

      把字体的尺寸设置为不同的尺寸,从 xx-small 到 xx-large。默认值:medium。

      smaller

      把 font-size 设置为比父元素更小的尺寸。

      larger

      把 font-size 设置为比父元素更大的尺寸。

      length

      把 font-size 设置为一个固定的值。

      %

      把 font-size 设置为基于父元素的一个百分比值。

      inherit

      规定应该从父元素继承字体尺寸。

    • line-height 属性设置行间的距离(行高)。可能的值:

      描述

      normal

      默认。设置合理的行间距。

      number

      设置数字,此数字会与当前的字体尺寸相乘来设置行间距。

      length

      设置固定的行间距。

      %

      基于当前字体尺寸的百分比行间距。

      inherit

      规定应该从父元素继承 line-height 属性的值。

    • font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。也就是说,font-family 属性的值是用于某个元素的字体族名称或/及类族名称的一个优先表。浏览器会使用它可识别的第一个值。
      • 有两种类型的字体系列名称:
        • 指定的系列名称:具体字体的名称,比如:"times"、"courier"、"arial"。
        • 通常字体系列名称:比如:"serif"、"sans-serif"、"cursive"、"fantasy"、"monospace"
    • 其他属性

      描述

      caption

      定义被标题控件(比如按钮、下拉列表等)使用的字体。

      icon

      定义被图标标记使用的字体。

      menu

      定义被下拉列表使用的字体。

      message-box

      定义被对话框使用的字体。

      small-caption

      caption 字体的小型版本。

      status-bar

      定义被窗口状态栏使用的字体。

Esc的退出功能

  • javascript:
     function onKeyDown(e) {
       if (e && e.keyCode == Sys.UI.Key.esc) {
              $find('ModalPopupExtenderDiffDetail').hide();
            }
         }

border赋值

  • CSS的border 简写属性在一个声明设置所有的边框属性。可能的值:
  • 描述

    border-width

    规定边框的宽度。参阅:border-width 中可能的值。

    border-style

    规定边框的样式。参阅:border-style 中可能的值。

    border-color

    规定边框的颜色。参阅:border-color 中可能的值。

    inherit

    规定应该从父元素继承 border 属性的设置。

    • border-width

      描述

      thin

      定义细的边框。

      medium

      默认。定义中等的边框。

      thick

      定义粗的边框。

      length

      允许您自定义边框的宽度。

      inherit

      规定应该从父元素继承边框宽度。

    • border-style

      描述

      none

      定义无边框。

      hidden

      与 "none" 相同。不过应用于表时除外,对于表,hidden 用于解决边框冲突。

      dotted

      定义点状边框。在大多数浏览器中呈现为实线。

      dashed

      定义虚线。在大多数浏览器中呈现为实线。

      solid

      定义实线。

      double

      定义双线。双线的宽度等于 border-width 的值。

      groove

      定义 3D 凹槽边框。其效果取决于 border-color 的值。

      ridge

      定义 3D 垄状边框。其效果取决于 border-color 的值。

      inset

      定义 3D inset 边框。其效果取决于 border-color 的值。

      outset

      定义 3D outset 边框。其效果取决于 border-color 的值。

      inherit

      规定应该从父元素继承边框样式。

    • border-color

      描述

      color_name

      规定颜色值为颜色名称的边框颜色(比如 red)。

      hex_number

      规定颜色值为十六进制值的边框颜色(比如 #ff0000)。

      rgb_number

      规定颜色值为 rgb 代码的边框颜色(比如 rgb(255,0,0))。

      transparent

      默认值。边框颜色为透明。

      inherit

      规定应该从父元素继承边框颜色

对比文件的滚动条同步功能

  • javascript函数
    • function OnScrollChanged() {
              xPos = document.getElementById('ctl00_MainContentPlaceHolder_panLeft');
              yPos = document.getElementById('ctl00_MainContentPlaceHolder_panLeft');
      
              document.getElementById('ctl00_MainContentPlaceHolder_panRight').scrollLeft = xPos.scrollLeft;
              document.getElementById('ctl00_MainContentPlaceHolder_panRight').scrollTop = yPos.scrollTop;
          }
  • Document对象:每个载入浏览器的 HTML 文档都会成为 Document 对象。它使我们可以从脚本中对 HTML 页面中的所有元素进行访问。
  • getElementById()方法可返回对拥有指定 ID 的第一个对象的引用。有很多查找元素的方法,除了 getElementById() 之外,还有 getElementsByName() 和 getElementsByTagName()。如果需要查找文档中的一个特定的元素,最有效的方法是 getElementById(),该特定的元素具有一个唯一的名称(id属性)。

URL

  • 要简单明了,容易记忆
  • 绝对路径:被链接文档的完整URL,包括所使用的传输协议(对于网页通常是http://)。
  • 相对路径:指以当前文件所在位置为起点到被链接文件经由的路径,比如相关页面间的切换。
  • 根路径:代表站点根文件

GridView中显示内容按照DiffInfoId逆序排列

  1. 实现 private static int CompareDinosByInfoId(DiffInfo x, DiffInfo y)方法进行逆序,重写IComparable 接口:

    private static int CompareDinosByInfoId(DiffInfo x, DiffInfo y)
            {
                if (x == null)
                {
                    if (y == null)
                        return 0;
                    else
                        return -1;
                }
                else
                {
                    if (y == null)
                        return 1;
                    else
                    {
                        int retval = y.InfoId.CompareTo(x.InfoId);
    
                        if (retval != 0)
                            return retval;
                        else
                            return y.InfoId.CompareTo(x.InfoId);
                    }
                }
            }
  2. 数组逆序:
    • Array.Reverse(Array):反转整个一维 Array 中元素的顺序。
    • Array.Reverse(Array, Int32, Int32):反转一维 Array 中某部分元素的元素顺序。
    • 原理:调用此方法之后,myArray[i](其中 i 为数组中的任意一个索引)处的元素移到 myArray[j](其中 j 等于 (myArray.Length + myArray.GetLowerBound(0)) - (i - myArray.GetLowerBound(0)) - 1)。

    • 此方法的运算复杂度为 O(n),其中 n 是 array 的 Length。
    • GetLowerBound(0) 返回 Array 的第一维的索引下限,GetLowerBound(Rank - 1) 返回 Array 的最后一维的下限。

    • 该 GetLowerBound 方法不受数组中元素数或数组为空的影响。

此方法的运算复杂度是 O(1)。

Page_Load()中对于page_IsPosBack()的判断

  • Page.IsPostBack 是用来检查目前网页是否为第一次加载,当使用者第一次浏览这个网页时Page.IsPostBack会传回False,不是第一次浏览这个网页时就传回True!如果刷新的话,相当于第一次加载。在页面上的每一次操作相当于Page_Load,但是要根据Page.IsPostBack的返回值判断是否是第一次加载。

C#方面

String.Split方法

  • String.Split(Char())
    • 返回的字符串数组包含此实例中的子字符串,例如:
     string str = "46, 45,a:";
     string[] split = str.Split(new Char[]{',', ' ', ':'});
    split[0]:46 split[1]:45 split[2]:a
  • String.Split(Char(), Int32)
    • 返回的字符串数组包含此实例中的子字符串(由指定 Unicode 字符数组的元素分隔)。 参数指定返回的子字符串的最大数量。
  • String.Split(Char(), StringSplitOptions)

    • 返回的字符串数组包含此字符串中的子字符串(由指定 Unicode 字符数组的元素分隔)。 参数指定是否返回空数组元素。
    • StringSplitOptions枚举:

      成员名称

      说明

      None

      返回值包括含有空字符串的数组元素

      RemoveEmptyEntries

      返回值不包括含有空字符串的数组元素

  • String.Split(String(), StringSplitOptions)

    • 返回的字符串数组包含此字符串中的子字符串(由指定字符串数组的元素分隔)。 参数指定是否返回空数组元素。
  • String.Split(Char(), Int32, StringSplitOptions)

    • 返回的字符串数组包含此字符串中的子字符串(由指定 Unicode 字符数组的元素分隔)。 参数指定要返回子字符串的最大数量,以及是否返回空数组元素。
  • String.Split(String(), Int32, StringSplitOptions)

    • 返回的字符串数组包含此字符串中的子字符串(由指定字符串数组的元素分隔)。 参数指定要返回子字符串的最大数量,以及是否返回空数组元素。

查找方法的优化:不使用遍历而是直接查找

变量命名

  • 控件的名称要可以唯一定位控件
  • Flag

web.config和app.config

  • web.config文件是一个XML文本文件,用来储存ASP.NET WEB应用程序的配置信息。可以应用于应用程序的每一个目录,所有子目录都继承它的配置设置。是web应用程序的配置文件,为web应用程序提供相关配置。在你开发的web程序中,你可以为每一个文件夹建立一个web.config.
    • web.config文件默认配置
    • 自定义web.config文件
      • <configuration> 标记通常包含三种不同类型的元素,1) 配置节处理程序声明,2) 配置节组,3) 配置节设置。

      • 配置节处理程序——ASP.NET 配置结构在 web.config 文件中的文件格式或支持的设置方面不进行任何假设。相反,它将处理 web.config 数据的任务委托给配置节处理程序,即实现 IConfigurationSectionHandler 接口的 .NET 框架类。单个 IConfigurationSectionHandler 声明只需要出现一次,通常是在 machine.config 文件中。子目录中的 web.config 文件自动继承此声明。配置节处理程序通过使用嵌套在 <configSections> 标记中的节标记指令在 web.config 文件中声明。节标记可进一步由节组标记限定,将它们组织为逻辑组(参见下文)。每个节标记标识一个表示特定配置数据节的标记名和一个处理该节的关联 IConfigurationSectionHandler 类。

      • 配置节组——ASP.NET 配置允许出于组织目的对节进行分层分组。<sectionGroup> 标记可显示在 <configSections> 标记的内部或其他 <sectionGroup> 标记的内部。例如,ASP.NET 节处理程序全都显示在 <system.web> 节组中。

      • 配置节——ASP.NET 配置设置在配置标记节中表示,同时嵌套在 <configuration> 标记(和可选的节组标记)中。对于每个配置节,必须在 config 层次结构中定义适当的节处理程序。例如,在下面的示例中,标记 <httpModules> 是定义 HTTP 模块配置数据的配置节。System.Configuration.HttpModulesConfigurationHandler 类负责在运行时解释 <httpModules> 标记中包含的内容。注意,节处理程序定义和节必须具有相同的节组限定符(此处为 <system.web>)。还应注意,标记名区分大小写,必须按所显示的原样键入。ASP.NET 的各种属性和设置也区分大小写,并且配置运行时不检查大小写是否不匹配。

  • app.config文件是桌面应用程序的配置文件。在vs.net中创建一个桌面应用程序工程并添加了应用程序配置文件时,它会自动命名为<appname>.exe.config,并且自动与你的程序进行关联。

  • 区别
    1. 如果你对web.config进行了修改,你的web应用程序将立即加载新的web.config。而当你对app.config进行了修改,必须重新启动桌面应用程序,app.config才能生效。
    2. app.config是桌面应用程序的配置文件,它不能用于Class类库。web.config是ASP.NET应用程序的配置文件。
      • 比如说,在一个拥有web.config的ASP.NET应用程序项目中,包含一个用C#写成的拥有app.config的class类库,那么当这个项目运行的时候,和它关联的配置文件应该是web.config,而不是app.config,因为它是一个ASP.NET应用程序。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章