PostBack IsPostBack

Posted loanhicks

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostBack IsPostBack相关的知识,希望对你有一定的参考价值。

这涉及到aspx的页面回传机制的基础知识 postback是回传 即页面在首次加载后向服务器提交数据,然后服务器把处理好的数据传递到客户端并显示出来,就叫postback, ispostback只是一个属性,即判断页面是否是回传,if(!Ispostback)就表示页面是首次加载,这是很常用的一个判断方式.一个页面只能加载一次,但可以在加载后反复postback.

onclientclick和onclick区别

 

OnClientClick是客户端脚本,一般使用javascript,在客户端,也就是IE中运行,点击后马上执行
OnClick是服务器端事件处理函数,使用C#或者vb.net,在服务器端,也就是IIS中运行,点击按钮后,执行postback,之后再运行。

 

其实有的时候需要客户端和服务端双重校验,为什么这么说呢? 比果说,一个用户名的文本框,在客户端我们通过JS校验,只能输入字母和数字,不能有特殊字符!通常情况下是没有问题的,但是总有那么一丢丢人想方设法的去“搞破坏” ,这个时候就需要进行双重校验了!说白了,就是服务端和客户端都进么校验!

比如说:Button有:OnClick事件和OnClientClick属性,前者一般就是服务端的点击事件!后者则是客户端的点击事件!

我们来做一个测试!在Default.aspx页面中添加如下代码!

 

复制代码
复制代码
    <script language="javascript" type="text/javascript">
        function buttonClick() {
            alert("我是客户端点击事件");
            return false;     
        }

     </script> 

复制代码
复制代码

页面代码:

复制代码
复制代码
 <form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Text="些Button是服务端控件,默认使用OnClientClick事件,请禁用浏览器的Js功能体验"
            OnClick="Button1_Click" OnClientClick="return buttonClick();" />
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </div>

   </form> 

复制代码
复制代码

cs文件代码:

protected void Button1_Click(object sender, EventArgs e)
{
    this.Label1.Text = "我是服务端点击事件";

 

大家运行看看是什么效果?  你可能会发现,只弹出了JS中的代码! 没错,这正是我们想要的效果,通过return false 来"屏蔽"服务端的校验!好处是什么? 就是不用刷新页面呀!

你再把浏览器的脚本功能禁用了,你再试一试,看看又是什么效果?

呵呵,通过双重校验就能确保用户的非法录入,这正是我们想要的结果! 

以上是关于PostBack IsPostBack的主要内容,如果未能解决你的问题,请参考以下文章

什么是ASP.NET中事件回传(PostBack)机制? 请给我一个具体的定义。

如何在用js处理页面首次加载的问题

010-判断是否回传IsPostBack属性

动态创建的用户控件无法处理 PostBack 上的事件

ASP.NET-POSTBACK是什么

2017-5-19 复合控件 ispostback