Asp.net的一些小重点

1.项目取名的时候要取英文名。不要有汉字。
2.要想使DataList中的每一个项模版中的按钮点击之后都能达到:
获取同样在这个项模版中另一个控件的值:
不是编写按钮的Click事件,而是编写DataList的行选择事件:SelectedIndexChanged;
//只有通过它的e属性才能得到关联:
this.DataList1.SelectedItem.FindControl("aaa")xxx;
只有这样才是动态的。

另外注意:按钮的CommandName(关联的命令)要设置为:Select.
3.TreeView控件。
动态地在页面上添加TreeView字节点:
比如说:在onload()中:
public onload()
{
 if(!IsPostBack)
 {
  Ilist<AAA对象> alist=aaaManager.getAll();
  foreach(AAA aaa in alist)
  {
   TreeNode node=new TreeNode();
   node.Text=aaa.Name;
   node.NavigateUrl="Default.aspx?"+aaa.aaaId;
   this.TreeView1.nodes[0].ChildNodes.Add(node);   
   
 }
}
4.要想使表单验证既弹出对话框又显示红字——关于用户自定义验证控件
非空之类的验证容易,对于用户自定义验证,可以这样让他弹出对话框。在ValidationSummary1的旁边拖入一个label控件。让他弹出对话框。灵活地运用用户自定义验证控件:可以使用它来判断一个txt的值输入的是不是数字,是否符合预定的
长度。
是不是数字和长度:
 protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args){
string value=this.txtAAA.text;
foreach(char ch in value)
{
 if(!Char.IsDigic(ch))
 {
    args.IsVilad=false;
 return; 
 }
}
if(value.length()<6)
{
 e.IsVilad==false;
}
}

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)
{
 return row[cloumn] is System.DBNull?true:false;//字段值为空就返回true;否则返回false;
}
而在方法中也用这个?表达式调用这个自定义的方法,来判断取出的字段是否为空,为空,就为对象赋一个现在的时间: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)源页面(可选)
 if(!IsPostBack){xxx}——判断页面是否是回发的,如果不是,而是初次加载,设置相应的属性。
 if(page.IsCrossPagePostBakc){xxx}//判断页面是否使用跨页提交,如果使用了,默认设置里面的属性的内容,比如设置一个TextBox的text属性为想要设置的值。
(2)目标页面(必须判断)
   if(page.PreviousePage!=null)//判断源页面是否存在
 {
  if(PreviousePage.IsCrossPagePostBack)//判断源页面是否是跨页提交.
  {
   string str=((TextBox)this.PreviousePage.FindControl("aaa")).Text
  }
 }
4.关于状态保持:Cookie,session,Application
Cookie:Cookie对象分别属于Reuqest对象和Response对象,对应的类名是:HttpCookie
写入:(1)Response.Cookie[Cookie名].value=变量.
         (2)HttpCookie cookie=new HttpCookie("Cookie名","值"); cookie.Expires=DateTime.Now.AddMinutes(double num);
 Response.Cookies.Add(cookie);
读取: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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值