1.项目取名的时候要取英文名。不要有汉字。
2.要想使DataList中的每一个项模版中的按钮点击之后都能达到:
获取同样在这个项模版中另一个控件的值:
不是编写按钮的Click事件,而是编写DataList的行选择事件:SelectedIndexChanged;
//只有通过它的e属性才能得到关联:
this.DataList1.SelectedItem.FindControl("aaa")xxx;
只有这样才是动态的。
另外注意:按钮的CommandName(关联的命令)要设置为:Select.
3.TreeView控件。
动态地在页面上添加TreeView字节点:
比如说:在onload()中:
public onload()
{
}
4.要想使表单验证既弹出对话框又显示红字——关于用户自定义验证控件
非空之类的验证容易,对于用户自定义验证,可以这样让他弹出对话框。在ValidationSummary1的旁边拖入一个label控件。让他弹出对话框。灵活地运用用户自定义验证控件:可以使用它来判断一个txt的值输入的是不是数字,是否符合预定的
长度。
是不是数字和长度:
string value=this.txtAAA.text;
foreach(char ch in value)
{
}
if(value.length()<6)
{
}
}
5.一些初始页面的控件,在需要绑定数据库的时候,在页面编码是比较灵活的。
比如:对于DropDrownList控件。
在他绑定数据的时候,由于数据库中没有如:--请选择之类的字段--则可以这样:
DropDrownList.DataSource=list;
DropDrownList.DataTextField="字段名";
DropDrownList.DataValueField="字段名";
DropDrownList.DataBind();
ListItem item=new ListItem("请选择","");
DropDrownlist.items.Insert(0,item);
6.对于Asp数据库中DBNull 空值的问题:
如果在数据库中的字段可以为空,但是要把他们显示出来,就会出现问题。
比如一个时间字段,在显示它之前要把它先存到一个对象类中,为对应的类赋值时,必须对从数据库中取出的值进行转换,这里就会报错了,为了避免这种情况,必须在方法中进行判断。可以自定义一个方法:比如你是用dataTable取出来的。
public bool IsNull(DataRow row,string cloumn)
{
}
而在方法中也用这个?表达式调用这个自定义的方法,来判断取出的字段是否为空,为空,就为对象赋一个现在的时间:DataTime.Now,以免报错。其他类似。AAA.DataTime=IsNull(row,"DataTime")?"":Conver.toDataTime(row["DataTime"]);
7.对于数据该使用哪种控件进行绑定:
对于多行多列,使用GridView进行绑定,单行多列或单列多行就可以使用DataList和 Repeater控件进行绑定。
8.通过服务器资源管理器将数据库的表拖到页面,可以快速开发出展示数据的程序功能。
//————————————————————————————————————————————
1.Visual Studio提供了4种创建Web站点的方式:文件系统、本地IIS、Ftp站点和远程站点。
2.Asp.net中的常见的系统对象复习:
(1)Page:
language:制定页面代码和后台代码使用的语言。:注意:只支持微软.net框架中的语言。
设置页面是否调用网页事件。注意:默认为:true;
CodeFile:指定代码后置的页面名.
Inherits:页面类.
(2)Request属性:
QuestSring[""];用于收集Http协议中的Get请求发送的请求数据.
Form[]用于收集Post方法发送的请求数据.
ServerVariable主要是一些服务器和客户端的系统信息.如:Request.ServerVaiables["HTTP_ACCEPT_language"]:可获取当前客户端浏览器使用的语言.;
Params[]:虽然效率低,但是可以收集各种信息,包括get,post
(3)Response常用方法:
Write();
End():使Web服务器停止当前的程序并返回结果.
Redirect();
(4)
3.关于页面传值,包括:
页内数据传递:
页内是指:页面类和后台代码页面之间.asp.net对此已经封装好了,直接用:控件.属性即可.不需要request之类的东西.
其中重要的属性是:Page.IsPostBack
这个属性的意思是判断是否是页面回发,如果它的值为true,说明是回发的,false则是第一次加载,所以通常这样判断:
if(!IsPostBack){}
跨页数据传递:
在新版的Asp.net中:如果由一个源页面跳转到一个目标页面并且想在这之间进行传值,不用设置?aaa=xxx之类的,它具有了一个新的属性
跨页数据传递:this.PreviousePage.FindControl("空间ID");其中PreviousePage是源页面的意思.
不过需要注意的是:只有3个控件按钮才具有这种属性:Button,LinkButton,ImageBotton,使用时把它们的postBackUrl属性设置成目标页面即可.
使用方法:
(1)源页面(可选)
(2)目标页面(必须判断)
4.关于状态保持:Cookie,session,Application
Cookie:Cookie对象分别属于Reuqest对象和Response对象,对应的类名是:HttpCookie
写入:(1)Response.Cookie[Cookie名].value=变量.
读取:string 变量=request.Cookies[Cookie名].Value;
Cookie,Session,Application三者之间的区别:
Cookie能够保存少量的数据,一般不会超过4KB,使用时限可以灵活地进行控制,面向单个用户保存在浏览器客户端中,所以最好不要保存敏感的信息。
Session和Cookie一样,能够保存少量、简单的数据,但是他是保存在服务器端的,相对安全一些,而用户关闭浏览器,或Session超时时,Session里面的数据就会被清空,默认的时间是20分钟,所以效率比较低。
Application能够保存任意大小的数据,也是保存在服务器端,但是当网站访问量较大时,可能会造成性能上的瓶颈,所以不建议保存较大的数据。
5.Server对象,有几个比较重要的方法:
Server.Execute();页面始终不变,但服务器会自动去执行目标页面。
Server.Tranfer();----跳转之后地址栏是不变的。
6另外一个很重要的属性:能在本页中保存变量值的东东
viewState["i"];
他可以这样进行操作:viewState["i"]=convert.toint32(viewState["i"])+1;
或this.textBox1.text=viewState["i"].toString();
而在onLoad()中:if(!IsPostBack){viewState["i"]=0}