.NET中数据绑定

http://hi.baidu.com/g__t/blog/item/985bbd31ee9dc5ae5fdf0ee6.html

http://book.csdn.net/bookfiles/73/100732087.shtml

1 数据绑定

必须绑定到可循环的控件中,如:datagrid,dataview,checkbox等。

区别1:

Eval用于显示只读的数据(单向),而Bind既可以放置只读的数据又可以放置可以更新的数据(可读写)。

Bind方法还把字段和控件的绑定属性联系起来,使得数据控件(比如GridView、FormView和其他数据库控件)的Update、Insert和Delete等方法可以使用这种联系来作出相应的处理。

另外,在使用和Bind 的时候,还可以在<%# 和 %>写入代码来对内容作出处理,而处理的结果将作为返回值被传出来。

区别2:

当对次表达式操作时候,必须用 如<%# ("字段名").ToString().Trim() %>

若GridView中绑定列里面 设置 内容格式 DataFormateString ={0:d} ,则 必须把 属性 HtmlCode 设置为false,否则无法起作用;

单向绑定:数据是只读的
Bind 双向绑定:数据可以更改,并返回服务器端,服务器可以处理更改后的数据,如存入数据库

2 画面跳转 

Response.Redirect("Controls_NavigationTarget.aspx?name=" & System.Web.HttpUtility.UrlEncode(Name.Text))

 

asp.net web画面跳转的方法如下:

1.Server.Execute

Server.Execute并不能完全算是画面跳转方法,它是实现动态调用页面并渲染其内容反映到当前页面的方法,之所以放在这里是想与Server.Transfer等做一个比较。使用场景主要是有“包含”关系的页面进行动态调用的时候,例如WebForm2.aspx作为WebForm1.aspx的一部分表示在后者的画面中,则可通过在WebForm1适当的位置声明< % Server.Execute("~/WebForm2.aspx") %>实现。

2.Server.Transfer

最节省资源的画面跳转方式,可保存前画面的URL查询字符串和表单信息,可在跳转目标画面中使用PreviousPage查询跳转前画面属性。Server.Transfer过程中没有发生HTTP请求,所以不会被HTTP Module和HTTP Handler捕捉到,无法写处理器;其本质是在服务器端直接进行页面“切换”,所以也就有客户端URL显示不正确,引发一系列的问题,如:URL相对路径问题、Sitemap问题等。

3.Response.Redirect

此命令将直接在次返回到客户端通过URL重定向到跳转目标页面,比Server.Transfer多了一次客户端和服务器端之间的往返,因为是纯粹URL重定向无法保存前画面状态,传值一般使用URL查询字符串或Session传值。

4.PostbackUrl属性

以HTTP POST方式请求下一个画面,可以保存跳转前画面状态,问题是POST发生于客户端,无法在服务器端实现验证和取消跳转的逻辑。

5.HTML链接

URL重定向,缺点与PostbackUrl一样发生在客户端只能通过URL查询字符串进行传值。

asp.net web画面跳转的传值方法如下

1.URL传值

因为URL长度限制,所以无法传送大量数据。对于敏感数据需要进行加密。

2.表单HTTP POST传值

以HTTP POST方式将表单属性传回到服务器端,能够保存前画面状态,可以通过PreviousPage属性进行查询。

3.PreviousPage属性传值

其实就是使用Server.Transfer和HTTP POST方式的画面跳转会把表单内容推送到服务器端,所以跳转后可以通过此属性获得前画面信息。

4.Session传值

代价比较大的方式,需要注意Session变量的生命周期在不需要的时候显式注销对象;对于集群之间的数据共享有很好的解决方案,但是把Session变量保存在数据库中要有慢25%的代价,这就需要考虑Web服务器和数据库服务器的性能。

以上,便介绍了asp.net web画面跳转的实现以及传值问题的解决方法。

 

3 引入用户控件:

<%@ Register TagPrefix="Acme" TagName="Message" Src="pagelet1.ascx" %>

<Acme:Message runat="server"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值