• .NET新手系列(五)


    好像有一个月左右没来了,继续吧:

    1遇到的问题:

    使用了验证控件,编译时提示“无法找到脚本库……”
    解决方法:
    由于更换了主目录路径,应将在wwwroot下的aspnet_client文件夹拷到新的目录下即可


     

    2遇到的问题:
    关于style中的alpha滤镜
    解决方法:
    滤镜说明:
    Alpha:设置透明层次.
    滤镜:alpha
    语法:
    STYLE="filter:Alpha(Opacity=opacity,FinishOpacity=finishopacity,Style=style,StartX=startX,StartY=startY,FinishX=finishX,FinishY=finishY)"
    说明:
    Opacity:起始值,取值为0-100,0为透明,100为原图.

    FinishOpacity:目标值.

    Style123

    StartX:任意值

    StartY:任意值

    例子1filter:Alpha(Opacity="0",FinishOpacity="40",Style="2")

    例子2<div id="mymenu" style="filter:alpha(opacity=50);border:1px solid">(即半透明)

    附常见滤镜:

    stylecss设置 2005-5-5 11:54:18

    语法:STYLE="filter:filtername(fparameter1,fparameter2...)}(Filtername为滤镜的名称,fparameter1fparameter2等是滤镜的参数)

     

    滤镜说明:

    Alpha:设置透明层次.

    blur:创建高速度移动效果,即模糊效果.

    Chroma:制作专用颜色透明.

    DropShadow:创建对象的固定影子.

    FlipH:创建水平镜像图片.

    FlipV:创建垂直镜像图片.

    glow:加光辉在附近对象的边外.

    gray:把图片灰度化.

    invert:反色.

    light:创建光源在对象上.

    mask:创建透明掩膜在对象上.

    shadow:创建偏移固定影子.

    wave:波纹效果.

    Xray:使对象变的像被x光照射一样.

     

    1.滤镜:alpha

    语法:

    STYLE="filter:Alpha(Opacity=opacity,FinishOpacity=finishopacity,Style=style,

    StartX=startX,StartY=startY,FinishX=finishX,FinishY=finishY)"

    说明:

    Opacity:起始值,取值为0-100,0为透明,100为原图.

    FinishOpacity:目标值.

    Style123

    StartX:任 ?

    StartY:任意值

    例子:filter:Alpha(Opacity="0",FinishOpacity="40",Style="2")

     

    2.滤镜:blur

    语法:

    STYLE="filter:Blur(Add=add,Direction=direction,Strength=strength)"

    说明:

    Add:一般为1,或0.

    Direction:角度,0-315度,步长为45.

    Strength:效果增长的数值,一般5即可.

    例子:filter:Blur(Add="1",Direction="45",Strength="5")

     

    3.滤镜:chroma

    语法:

    STYLE="filter:Chroma(Color=color)"

    说明:

    color:#rrggbb格式,任意.

    例子:filter:Chroma(Color="#FFFFFF")

     

    4.滤镜:DropShadow

    语法:

    STYLE="filter:DropShadow(Color=color,OffX=offX,OffY=offY,Positive=positive)"

    说明:

    Color:#rrggbb格式,任意.

    Offx:X轴偏离值.

    Offy:Y轴偏离值.

    Positive:10.

    例子:filter:DropShadow(Color="#6699CC",OffX="5",OffY="5",Positive="1")

     

    5.滤镜:FlipH

    语法:

    STYLE="filter:FlipH"

    例子:filter:FlipH

     

    6.滤镜:FlipV

    语法:

    STYLE="filter:FlipV"

    例子:filter:FlipV

     

    7.滤镜:Glow

    语法:

    STYLE="filter:Glow(Color=color,Strength=strength)"

    说明:

    Color:发光颜色.

    Strength:强度(0-100)

    例子:filter:Glow(Color="#6699CC",Strength="5")

     

    8滤镜:Gray

    语法:

    STYLE="filter:Gray"

    例子:filter:Gray

     

    9.滤镜:Invert

    语法:

    STYLE="filter:Invert"

    例子:filter:Invert

     

    10.滤镜:Mask

    语法:

    STYLE="filter:Mask(Color=color)"

    例子:filter:Mask(Color="#FFFFE0")

     

    11.滤镜:Shadow

    语法:

    filter:Shadow(Color=color,Direction=direction)

    说明:

    Color:#rrggbb格式.

    Direction:角度,0-315度,步长为45.

    例子:filter:Shadow(Color="#6699CC",Direction="135")

     

    12.滤镜:Wave

    语法:

    filter:Wave(Add=add,Freq=freq,LightStrength=strength,Phase=phase,Strength=strength)

    说明:

    Add:一般为1,或0.

    Freq:变形值.

    LightStrength:变形百分比.

    Phase:角度变形百分比.

    Strength:变形强度.

    例子:filter:wave(Add="0",Phase="4",Freq="5",LightStrength="5",Strength="2")

     

    13.滤镜:Xray

    语法:

    STYLE="filter:Xray"

    例子:filter:Xray 

     

    3遇到的问题:

    关于ArrayListIenumerator

    解决方法:

    ArrayList a=new ArrayList();

                  string s1="aaaaa";

                  string s2="bbbbb";

                  string s3="ccccc";

                  int i1=1;

                  int i2=2;

                  int i3=3;

     

                  a.Add(s1);

                  a.Add(s2);

                  a.Add(i1);

                  a.Add(i2);   

                  a.Add(i3);

                  a.Add(s3);

     

                  IEnumerator ie=a.GetEnumerator();

                  while(ie.MoveNext())

                  {

                       string s=ie.Current.ToString();

                       Response.Write(s+Environment.NewLine);

                  }

    (与直接对arraylist对象用下标访问或通过foreach访问有什么区别?)

     

    4遇到的问题:

    关于arraylist

    解决方法:

    . ArrayList 构造函数

     

    1. public ArrayList(); 

        初始容量是新ArrayList的起始容量。ArrayList 的默认初始容量为16如果添加到列表中的元素个数达到当前容量,则容量将自动增加一倍。

     

    2. public ArrayList(ICollection);

        初始容量是新ArrayList 的起始容量。如果添加到列表中的元素个数达到当前容量,则容量将自动增加一倍。按照由ICollection IEnumerator 读取元素的顺序将这些元素复制到ArrayList 中。

     

    3. public ArrayList(int);

        初始容量是新ArrayList 的起始容量。ArrayList 的默认初始容量为16。如果指定的初始容量为0,则使用默认的初始容量。如果添加到列表中的元素个数达到当前容量,则容量将自动增加一倍。因此,如果可以估计集合的大小,那么当指定初始容量后,将无需在向ArrayList 中添加元素时执行大量的大小调整操作。

     

    . ArrayList 成员

     

    1. 常用属性

    Capacity:获取或设置ArrayList 可包含的元素数。

    Count:获取 ArrayList中实际包含的元素数。

    Item:获取或设置指定索引处的元素。在 C# 中,该属性为ArrayList类的索引器。

     

    2.常用方法

    Add:将对象添加到ArrayList的结尾处。

    Clear:从ArrayList 中移除所有元素。

    IndexOf:返回ArrayList 或它的一部分中某个值的第一个匹配项的从零开始的索引。

    LastIndexOf:返回ArrayList或它的一部分中某个值的最后一个匹配项的从零开始的索引。

    Insert:将元素插入ArrayList的指定索引处。

    Remove:从ArrayList中移除特定对象的第一个匹配项。

    RemoveAt:移除ArrayList的指定索引处的元素。

    TrimToSize:将容量设置为ArrayList中元素的实际数量。

     

    5遇到的问题:

    关于动态修改html中的某些内容

    解决方法:

    例如,改变页面的title

    1

                       <script language =javascript >

                                window.document.title =tl;

                       </script>

    .cs中:

                  string s="123456";

                  Response.Write("<script language=javascript>var tl='"+ s +"'</script>");

     

    2

                       <title><%=s%></title>

    .cs中:

             public string s="123456";

    使用protected修饰也行,但internal修饰则出错,???

     

    3

                       <title><%=Method()%></title>

    .cs中:

             public string Method()

             {

                  return "123456";

             }

    同二,使用internal修饰也不行???

     

    6遇到的问题:

    关于params关键字

    解决方法:

             private void Page_Load(object sender, System.EventArgs e)

             {

                  // 在此处放置用户代码以初始化页面

                  string[] sArray=new string[3];

                  sArray[0]="aaa";

                  sArray[1]="bbb";

                  sArray[2]="ccc";

     

                  Method1(sArray);

    //            Method1("aaa","bbb","ccc");      //error

     

                  Method2(sArray);

                  Method2("aaa","bbb","ccc");

     

             }

     

             private void Method1(string[] s)

             {

                  string temp="";

                  foreach(string e in s)

                  {

                       temp+=e;

                  }

                  this.TextBox1.Text =temp;

             }

     

             private void Method2(params string[] s)

             {

                  string temp="";

                  foreach(string e in s)

                  {

                       temp+=e;

                  }

                  this.TextBox2.Text =temp;

             }

     

    7遇到的问题:

    关于__doPostBack()方法?

    解决方法:

    页面一:

    提供一个锚点:

    <a onclick="javascript:window.open('WebForm2.aspx','_blank')">open webform2</a>

    一个文本框,用于显示一些信息:

    <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>

    一个隐藏的服务器button

    <asp:Button id="Button1" runat="server" Text="Button" Visible="False"></asp:Button>

    Button的后台事件为:

    private void Button1_Click(object sender, System.EventArgs e)

    {

         this.TextBox1.Text ="has click...";

    }

    页面二:

    添加一个服务器按钮,添加事件:

    private void Button1_Click(object sender, System.EventArgs e)

    {

         string s="<script language=javascript>";

         s+="window.opener.__doPostBack('Button1','');";

         s+="</script>";

     

         this.Page.RegisterClientScriptBlock("a",s);

    }

    此时,在页面二中无法成功地触发页面一中的__doPostBack()事件,是由于在没有某些特定控件的时候,html文件中并不会产生__doPostBack()函数的javascript代码,所以在页面二中点击按钮时会提示“对象不支持此方法”:

    <script language="javascript">

    <!--

         function __doPostBack(eventTarget, eventArgument)

    {

             var theform;

             if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {

                  theform = document.forms["Form1"];

             }

             else {

                  theform = document.Form1;

             }

             theform.__EVENTTARGET.value = eventTarget.split("$").join(":");

             theform.__EVENTARGUMENT.value = eventArgument;

             theform.submit();

         }

    // -->

    </script>

    要使用页面内容中产生以上代码,可以添加一个LinkButton控件(好像只有该控件可以??)

    另外的方法是在Page_Load()加上下面方法:

    this.Page.GetPostBackEventReference(Button1);

    上面方法将触发产生__doPostBack()javascript代码,msdn中的解释是:

    “获取对客户端脚本函数的引用,调用该函数将使用服务器发送回该页”

    以上代码可以应用于在子窗口中修改数据,然后刷新父窗口的情况

    另外,注意“__doPostBack()”,方法名中是两道下划线,并且区分大小写。

     

    8遇到的问题:

    关于.netsqlserver中的日期类型

    解决方法:

    例子:Northwind--employees--birthdate

    this.TextBox1.Text =dr.GetDateTime(0).ToString();输出:1948-12-8 0:00:00

    this.TextBox1.Text =dr[0].ToString();输出:1948-12-8 0:00:00

    this.TextBox1.Text=dr.GetDateTime(0).ToShortDateString();输出:1948-12-8

    this.TextBox1.Text=dr.GetDateTime(0).ToString("yyyy#mm#dd");输出:1948#00#08

     

    9遇到的问题:

    关于脚本的调试

    解决方法:

    1调整IE选项--高级--取消“禁止脚本调试”

    2直接运行你将要调试的aspx页面

    3当页面呈现完成时,回到vs.net中,调试--窗口--运行文档,窗口右侧将出现当前IE中的aspx页面的名称,双击它,此时页面的html源文件将显示在vs.net的窗口中,这样就可以在html文件中设置断点。

     

    0遇到的问题:

    关于存储过程的调试

    解决方法:

    在查询分析器中展开左侧的对象浏览器(按F8,或“工具”--“对象浏览器”打开),展开存储过程,选择要调试的存储过程,右键,调试/debug

    如果存储过程存在输入参数,则输入测试参数值,即可进行调试界面,F11单步

  • 相关阅读:
    字符串中的不可见字符应该如何清除?
    字符/字段数据的合并
    分割字符串的应用
    几种分割字符串实现方法的比较
    linux的一些文件基本命令
    centos7安装es6.4.0
    Sql 语句中 IN 和 EXISTS 的区别及应用
    Springboot通过redisTemplate实现发布订阅
    代理模式
    单例模式的多种实现方法
  • 原文地址:https://www.cnblogs.com/morvenhuang/p/290279.html
Copyright © 2020-2023  润新知