.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单步

posted @ 2005-12-04 10:11  后厂村思维导图馆  阅读(1094)  评论(0编辑  收藏  举报