第四章 javascript脚本
javascript的语法基础
1:javascript区分大小写
2:javascript每一条语句必须以";"结束,与C语言一样
3:输出:document.write("字符串")--->还可以输出对应的html标记
4:改变窗体的颜色document.bgColor="red";
4:类型转换:parseInt,parseFloat
5:随机函数:parseInt(Math.random()*90+10) 产生10--100的随机数
5:弹出对话框:alert("提示的内容")
5:if if...else,for,while,switch case
5:如何定义数组:
1)一维数组:
a=new Array();[定义数组时不需要指定长度]
a[0]=1;
a[1]=1;
a[2]=1;
s=0;
for(i=0;i<a.length;i++)
{
s+=a[i];
}
2)二维数组:
city=new Array();
city[0]=new Array("湖北省","武汉");
city[1]=new Array("湖北省","仙桃");
city[2]=new Array("湖北省","洪湖");
city[3]=new Array("福建省","广州");
city[4]=new Array("福建省","厦门");
city[5]=new Array("福建省","漳州");
5:javascript里面的函数,及函数的调用,以及变量的作用范围
6:弹出询问对话框:confirm("询问的内容")
7:关闭窗体:window.opener=null;window.close();
8:打开一个窗体:
1)变量名=window.open("网页名") 开一个新窗口
2)变量名=window.open("网页名","名字","height=200px,width=300px")
3)打开窗口在屏幕中心弹出
t=window.open('dotest.htm','test','height=400px,width=500px');
t.moveTo((screen.width-500)/2,(screen.height-400)/2;
4)window.location="url" 不会打开一个新窗口
5)以模态窗体弹出
window.showModalDialog('dotest.htm','','dialogWidth=600px;dialogHeight=500px');
9:刷新一个窗体:
window.location.reload();
10:得到本窗体的表单元素的值:表单名.元素名.value
11:如何在另外一个窗体中来访问前一个窗体的表单元素
A:模态窗体:
源窗体
1)window.showModalDialog('dotest.htm',window,'dialogWidth=600px;dialogHeight=500px');
注意名字一定要写上window
2)window.dialogArguments.form1.txtuser.value
B:非模态窗体:
源窗体:
window.open
目的窗体:
window.opener.表单名.表单元素名.value
12:如何通过模态窗体向父窗体返回值:
源窗体:
t=window.showModalDialog(参数)
alert(t)
目的窗体:
window.returnValue=值;window.opener=null;window.close();
13:如何在关闭子窗体的同时,刷新父窗体
A)非模态窗口
源页面:
window.open("页面")
目的页面:
window.opener.location.href=window.opener.location.href;
window.opener=null;window.close();
B)模态窗口
源页面:
window.showModalDialog();-------有暂停代码的用途
window.location.reload();
目的页面:
window.opener=null;window.close();
14:设置状态栏文字:window.status
15)转换字符串为数值:parseInt("字符串"),parseFloat("字符串")
16)得到当前的时间
var date=new Date();
document.write(date.toLocaleTimeString());
17):得到当前的日期:
var date=new Date();
document.write(date.toLocaleDateString());
18):回到上一个页面。注意不是刷新
history.go(-1)
19:改变某个对像的背景色
this.style.backgroundColor='yellow',
this.style.color='文字颜色'
20:设为首页:
this.style.behavior='url(#default#homepage)';this.setHomePage('你的网页');
21):指定让代码过几分钟后自动反复执行某个过程.
setInterval("js代码",1000)
举例:让一个背景不断变换[页面闪得很厉害]
var index=1;
function ChangePic()
{
form1.p1.src=index+".jpg";
index=index+1;
if (index==4)
{
index=1;
}
}
setInterval("ChangePic(index)",1000);
改进:[先定义数组,把图片预装在内存中]
pic=new Array(4);
pic[0]=new Image();
pic[1]=new Image();
pic[2]=new Image();
pic[3]=new Image();
pic[0].src="1.jpg";
pic[1].src="2.jpg";
pic[2].src="3.jpg";
pic[3].src="4.jpg";
function ClearText()
{
form1.p1.src=pic[index].src;
index=index+1;
if (index==4)
{
index=1;
}
}
setInterval("ClearText(index)",1000);
23):让指定的代码在多少时间之后执行,但只执行一次:
setTimeout("js代码",1000);
24):清空一个表单中的所有文本框的文本
for(i=0;i<form1.elements.length;i++)
{
if (form1.elements[i].type=="text")
{
form1.elements[i].value="";
}
}
25)运行一个可执行文件:
obj=new ActiveXObject("wscript.shell");
obj.run("calc.exe");
26)Java script中的事件
A)onmouseove:鼠标到达
B)onmouseout:鼠标离开事件
C)onclick:单击事件
D)onKeypress:键被按下时,可以通过event.keyCode得到按下键的Asii码
E)load事件:把代码直接写在<script></script>就相当于Load事件
F)onsubmit:当表单提交时会触发表单提交事件
原理:当用户按下提交按钮时,会触发表单的onsubmit事件。在这个事件里面根据用户返回 的值(true,false)来决定是否需要提交表单,为true时会提交,为false不会提交所 以我们经常会用一个函数来进行数据验证。
举例:
1)<marquee scrollamount=3 onmouseover=this.stop(); onmouseout=this.start();>文字移动
2)<input type=text name=txtPostalCode onKeypress="if (event.keyCode < 45 || event.keyCode > 57) event.keyCode=0;">//只能输入数字
3)使表格的选中的行出现不同的颜色
4)阻止用户往文本框里面输入值:
onkeypress="reuturn false"
说明:在表单元素的任何事件中,只要加上return false就不会触发此事件
25:正则表达式:
像dos里面的通配符一样,用来检测一个输入是否满足特定的通配符
^:代表一行字符的开头
$:代表一行字符的结束
[]:用来定义可接受的字符
[a-z]:表示可以接受小写字母
[A-Z]:表示可以接受大写字母
[0-9]:表示可以接受数字
[0-9,_,a]:表示可以接受数字,下划线或字母a
[a-zA-Z0-9]:表示既可以接受英文字母,又可以接受数字
[^]:不能接受的字符
[^a-z]:不能接受英文字母
{}:用来定义必须输入的字符个数
{3}:必须含有3个字符。
{4,8}:至少含有4个至多含有8个字符
[0-9]{3}:必须输入3个数字
[a-zA-Z]{4,6}:必须输入4到6位英文字母
{n,}:表示至少可以输入n个字符。
[a-z]{0,}:表示可以接受0个或多个英文字母
[a-z]{1,}:表示可以接受至少1个英文字母
+:匹配前面字符的1次或多次-----相当于{1,}
*:匹配前面字符的0次或多次-----相当于{0,}
.:表示任意字符
举例:
frm1.user.value.match("^[0-9a-zA-z]{5,8}$")
26:如何利用Js对表单元素进行控制:
A:文本框:
1)得到文本框的文本:
表单名.表单元素名.value
2)获得焦点:
表单名.表单元素名.focus()
B:按钮:
1)使按钮不可用:
表单名.按钮名.disabled=true (true,不可用;false 可用)
2)使按钮不可见:
表单名.按钮名.style.display="none" 不可见
表单名.按钮名.style.display="" 可见
if (表单名.按钮名.style.display=="") 如果可见
C)单选框:
得到单选框所选中的值 [各个单选框的名称一定要一样,值不一样]
for(i=0;i<单选框数组.length;i++)
if (单选框数组[i].checked) break;
返回 单选框数组[i].value就行了
D):得到所有打勾的复选框的值
for(i=0;i<复选框数组.length;i++)
if (复选框数组[i].checked) 执行对应的语句
E):下拉框
A)得到所选中的值-->下拉框.value
B)删除里面的全部内容----->下拉框.length=0;
C)删除里面的指定项--->下拉框.options.remove(下标);
D)往里面添加一项----->下拉框.options[下拉框.length]=new Option("标签","值");
注意下拉框的options是一个数组,用来存储所有选择,下标是从零开始的
E)selectedIndex:得到或设置所选中的项的下标
F)options[k].value:得到第i项的值
G)onchange事件:当选中项发生改变时,触发
举例:在客户端实现两个下拉框的联动[注意定义一维数组]
city=new Array();
city[0]=new Array("湖北省","武汉");
city[1]=new Array("湖北省","仙桃");
city[2]=new Array("湖北省","洪湖");
city[3]=new Array("福建省","广州");
city[4]=new Array("福建省","厦门");
city[5]=new Array("福建省","漳州");
27:创建一个模块的js的文件,然后在页面中来调用
A)直接新建一个*.js文件:
直接写上函数,不用加<script type="text/javascript">标记
B)在目的页面中通过:<script src="JScript.js" type="text/javascript"></script>来引用
28:多个对像共享同一个事件:
<script type="text/javascript" for="TabItem" event="onmouseover">
var TabItem=document.getElementsByName("TabItem");
for(i=0;i<TabItem.length;i++)
{
if (TabItem[i]==this)
{
TabItem[i].background="images/nh-bg.gif";
}
else
{
TabItem[i].background="";
}
}
</script>
第四章:C#.net语法基础
在这一章中,你将要学习以下一些内容
1:编写asp.net语言的选择
2:vs.net 2005 界面技巧
3:如何在页面中加入服务器端代码
4:如何在页面中导入命名空间
5:C#.net语法基础
6:动态的由服务器端向客户端加入javascript
编写asp.net语言的选择:
编写asp.net程序,net为我们提供了以下几种语言vb.net,c#.net,j#.net其中vb.net语言是最简单,最容易学的语言,它继承了vb的大部分语法,同时又加入了一整套.net framework,利用vb.net开发asp.net程序是最容易的一门的语言C#.net是整个.net的核语言,它继承了c,c++的大部分语法,较vb.net有点复杂,但是执行程序的效率比vb.net更高,j#.net是继承了javascript的大部分语法,一般很少用。我们选择C#.net语言作来开发asp.net程序的语言
vs.net 2005 界面技巧
1)设置显示解决方案---------:工具--选项-->项目和解决方案-->常规
2)对单网页可以进行生成,不需要对整个项目进行生成
3)设计模式与源文件模式(html模式),后代码模式(类),让页面一加载时自动显示设计模式
4)文档大纲窗口:可以清楚层现html标签的层次关系:视图-->其它窗口--->文档大纲
5)Html标签导航:切换到源文件模式,单右-->选择最下面的"选中html标签"
6)源文件模式下控件拖曳
7)多文档页面显示------ctrl+tab可以在不同文档之间切换
8)Asp.net网站特殊文件夹:
A:App_Code用来存放代码文件(比如:*.cs,类文件)
B:App_Date用来存放网站数据文件(数据库文件,xml文件等)
C:还有很多其它的特殊文件夹
9)程序代码重构:
A:重构属性
B:重构方法
10)Asp.net网站的动态编译:
A:当asp.net第一次运行时,IIs会自动为asp.net生成一个dll,所以第一次非常慢
以后只要文件的内容的没有发生改变,IIs就会延用上一次生成的dll,不会再次生成
新的dll,所以第一次运行慢,以后运行快
B:如果asp.net的源文件内容一旦发生改变,则IIs会重新生在一个dll,利用这个特点
我们可以在vs.net环境中写程序,而在IIs中直接打开网站后刷新即可
如何在页面中加入服务器端代码
C#.net只能被服务器端的IIS来编译执行,所以C#.net语言是一定要运行于服务器端
A:直接把代码加入"后代码文件"的事件里面[采用CodeBehind]
B:直接把代码加入"页面文件"里面此时一定要加<% %>来限制 [采用CodeBeside]
1)如果是单纯的C#代码,可以直接用<%%>括起来,并且可以有多个<%%>
2)如果是函数,则一定要紧跟在<%page %>命令符下面,并按照如下的格式:
<script language="C#" runat="server">
private int sum(int a, int b)
{
return a + b;
}
</script>
3)如果要得到一个变量的值,可以写上<%=变量名%>
比如:
今天是:<%=System.DateTime.Today.ToLongDateString() %>
如何在页面中导入命名空间
1)在代码文件中:使用using语句
2)在页面文件中:使用<%@ Import 语句比如:
<%@ Import Namespace="System.Data.SqlClient" %>
位置在<@ page> 的下面
C#.net的语法基础
C#.net的数据类型:
Int,Double,String,Char,object数据类型(相当于vb里面的变体类型)
定义变量:
类型标识符 变量名;
给变量赋初值:
可以在定义的时候,给变量赋初值---Int a=5;
也可以在定义之后,给变量赋初值
运算符:
a):赋值运算符:=
b):算术运算符:+,-,*,\(整除),%(余)
c):字符串联接符:+
d):关系运算符:>,>=,<,<=,==
e):逻辑运算符:&&,||,!
f):复合运算符:x+=3,x*=6等
asp.net的输入和输出:
a):输出
1):输出单纯的字符串: response.write("字符串");
2):输出html标记:response.write("html标记")[重要重要]
比如:Response.Write("<a href='C:\WINNT\Web\Wallpaper\城堡.jpg'>我的链接</a>")
3):输出js脚本:Response.Write("<script>js代码</script>");
4):输出当前的日期和时间:
Response.Write(DateTime.Now.ToLongTimeString()):时间
Response.Write(DateTime.Now.ToLongDateString()):日期
b):输入:利用控件进行输入比如:textbox控件等
if 语句,select case语句
举例:
A)让用户输入两个数和一个操作符,求出运算结果
B)让用户输入三门功课求出平均分和总分并根据求出的结果判断优,良,差
C)根据星期把对应的背景图片换成是"星期"的图片
循环语句:for,while循环
举例:
A)输出Moon1.gif~Moon8.gif这几个文件里面的图片
B)利用表格打印九九乘法表
C)实现掷骰子游戏
7:数组:
1):声明与初始化
静态数组的声明与初始化:
string[] NameList = new string[6];
进行初始化
string[] NameList=new string[5] {"张三","李四","王五","赵六","王七"};
动态数组的初始化:
string[] NameList=new string[] {"张三","李四","王五","赵六","王七"};
2):数组.length:用来读出数组的长度
举例:
A)定义姓名,语文,数学,化学数组,通过函数与表格求出总分与平均分
B)利用数组和表格打印出一些商品的列表清单
8:哈希表(HashTable):是一种两栏数据结构。一栏是键(Key),一栏是值(Value)
创建哈希表:
Hashtable has = new Hashtable();
添加数据:
has.add("键",值)
获得指定键的值
has["键"]
检查是否已经存在某个键
has.ContainsKey("键")
删除某个键
has.Remove("键")
清除全部键
has.clear();
访问哈希表的内容:
Hashtable ht = new Hashtable();
foreach (DictionaryEntry item in ht)
26:动态的向服务器(web控件)加入客户端的javascript[重要]
以前的方法都是根据事先写好的函数,然后再向客户端去调用,但有时候,可能需要服务器
端传来的数据,再在客户端进行处理,这个时候就要动态的向客户端添加代码
方法:
在Page_Load事件里面写上:
1:RegisterClientScriptBlock("chen", js)方法来注册js
2:IsClientScriptBlockRegistered("chen")方法来检验些js是否已经注册,从而
可以避免一个js被反复注册
举例:
1)从数据库里面读出职工信息,放入客户端的js中。形式如:
Worker=new Array()
Worker[0]=new Array('张三','BM1');
Worker[1]=new Array('李四','BM1');
Worker[2]=new Array('王五','BM2');
Worker[3]=new Array('赵六','BM2');
2)通过数据库,实现两个下拉框的联动(无刷新)
评论