什么是postback?

panelbar 2005-12-01 11:37:05
学习控件编程时遇到IPostBackEventHandler,IPostBackDataHandler

请各位帮忙解释一下,什么时候要实现这两个接口?

另外由个问题:什么是postback?回传是指重服务器到浏览器,还是倒过来?什么时候才发生postback?

简单问题,请各位帮忙!
多谢各位!
...全文
1655 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qwerttyy 2005-12-01
  • 打赏
  • 举报
回复
楼上说得很多了,学习.
  • 打赏
  • 举报
回复
在asp.net上,正常的情况下,可以理解为任何回发都是页面自己提交。注意,不是那种客户端重定向,而是页面自己通过<Form Action="....>这种回发的。此时,页面上(实际上Form内)有一个<input type=hidden id=__ViewState name=__ViewState ...>变量会被写入http的Post命令参数中,服务器就知道这是isPostBack=true。

asp.net在输出一个页面的时候,不论是否 EnableViewState=false,都会输出上述隐藏字段,所以页面可以正确知道是第一次创建页面,还是已前输出过此次是在次创建页面。
panelbar 2005-12-01
  • 打赏
  • 举报
回复
回传是提交表单,可以这样理解码?

不需要postback,用frameset,是这样码?
  • 打赏
  • 举报
回复
浏览器端传递数据到服务器的时候,服务器检查时候有_Viewstate是否存在,如果存在,就会在isPostBack中返回true。

IPostBackDataHandler接口定义此控件需要返回(Post回)值,并填回控件。在客户端,例如textbox控件等生成的html会在浏览器以Post方式回发服务器的时候在参数中提交控件的value,aps.net对于实现了此接口的控件,会自动从Post来的http参数中获取控件的value,并且调用此接口的LoadPostData函数通知控件处理(填写到自己的实例中),并且这个函数如果返回true还会在page_load事件结束后触发此控件的RaisePostDataChangedEvent方法,这通常就是控件包装成的 xxxChanged 或者 xxxClicked 事件。程序员直接在这些最终事件上写程序,其实就是由这个机制由asp.net控制的。

IPostBackEventHandler接口则定义除了上面Post上来数据以外的控件“自定义”客户端事件。页面使用 Page.GetPostBackEventReference 等函数输出的脚本命令可以直接被asp.net调用此控件的RaisePostBackEvent方法。例如一个会计凭证控件具有此接口,如果你希望点击一个对象触发它的“记账”功能,就可以这样写代码:

Ctr.Attributes.Add("onclick",Page.GetPostBackEventReference(凭证,"记账"))

它运行时就会在Ctr中输出类似 __doPostBack('ctr0_ctr_1','记账') 的命令,并且点击此Ctr会触发会计凭证的记账事件。
jijl2001 2005-12-01
  • 打赏
  • 举报
回复
页面回传
hainang1234 2005-12-01
  • 打赏
  • 举报
回复
回传当然是指从浏览器传到服务器。
hainang1234 2005-12-01
  • 打赏
  • 举报
回复
.NET的服务器控件都是通过ViewState保存状态,而这个ViewState值又保存在一个hidden控件中,所以,只有你submit,ViewState才能帮你保存并恢复状态,如果你只是用一个location=...则服务器控件的状态也会丢失。
而一般来讲都是用的post方法提交form。
所以表面上可以像楼上那么理解。
但总的来说,你是submit提交form的话,并且form又是runat=server的话,就是IsPostBack。
iuhxq 2005-12-01
  • 打赏
  • 举报
回复
个人理解:

GET方式访问就是!postback

post方式就是postback
panelbar 2005-12-01
  • 打赏
  • 举报
回复
什么时候发生postbsck?

62,194

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧