Page_Load事件与IsPostBack属性

下面是一个登陆的界面:

我们的需求是:

       第一次进入登陆界面时,用户名和密码应该为空,所以我们应该在Page_Load中将存放用户名和密码的两个文本框的内容清空。然后当我们单击登陆按钮时,将用户名和密码提交到服务器。

privatevoid Page_Load(object sender, EventArgs e)
    {
        {
            this.txtUserName.Text = "";
            this.txtUserPwd.Text = "";
        }
  }
privatevoid btn_Login(object sender, EventArgs e)
    {
        string userName = Request.Form["userName"].ToString();
        string userPwd = Request.Form.Get("userPwd").ToString();
        SqlConnection con = new SqlConnection("server=.;database=login;uid=sa;pwd=123456654321");
        SqlCommand cmd = new SqlCommand("selectcount(*) from login where userName=‘" + userName + "‘ anduserPwd=‘" + userPwd + "‘", con);
        int count = Convert.ToInt32(cmd.ExecuteScalar());
        if (count > 0)
        {
            Response.Redirect("main.aspx");

        }
     }

结果:

       当我们进入登陆界面时,用户名和密码的内容的确清空,但是当我们确不能登陆成功。

原因:

        当执行btn_Login事件时同时会执行Page_Load事件,并且Page_Load的执行顺序先于btn_Login的执行顺序。所以当我们单击登陆按钮时,它会先执行Page_Load事件,文本框的内容就会清空,在btn_Login事件中获取到的内容不是我们在界面输入的值,而是空值,所以,不能登陆。

Page_Load事件的特性:

       无论页面的其它任何事件执行时都会先执行Page_Load事件。

因此,当加载页面并对控件的更改属性进行处理之前,应该先在Page_Load事件中检查该页面是否为被传递回的页面,即要进行IsPostBack的属性的判断。

      Ispostback:就是判断页面是首次加载的,还是数据回发(有get或者post请求过的)后的页面。对于首次加载的页面,IsPostBack的值为false,其它时候加载的页面都是回发页面,IsPostBack的值为true。

privatevoid Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack )
        {
            this.txtUserName.Text = "";
            this.txtUserPwd.Text = "";
        }
    }
 

这样,每次进行一下判断,可以给我们省去好多麻烦。 --------------------- 本文来自 九期赵欢欢 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/zhaohuanhuanjiuqi/article/details/18718035?utm_source=copy

原文地址:https://www.cnblogs.com/asdyzh/p/9741059.html

时间: 2024-10-10 01:35:14

Page_Load事件与IsPostBack属性的相关文章

ASP.NET中IsPostBack属性研究

通过页面的IsPostback属性,可以检查 .aspx 页是否为传递回服务器的页面:当加载页面并对控件的更改属性处理之前,用户可以在page_Load事件中检查该页面是否被传递回的页面. 一般是在page_load中检查是否是第一次加载本页或是判断是否是用户提交(PostBack)if (!IsPostBack) {//do something}在用DataGrid访问和更新数据库时没有注意到这个问题,会出现各种各样的奇怪问题,比如我的这种. 问题描述:用DataGrid访问和更新数据库(SQ

母版页的 page_load事件执行两次

定义了一个母版页 Admin.master  部分代码如下 <body > <div> <!--公共的头部开始--> <div class="hearderWrap" runat="server"> <div class="hearderWr"> <div class="hed_left"> <p class="logor">

jQuery事件对象的属性和方法

jQuery事件对象的属性和方法 事件对象的属于与方法有很多,但是我们经常用的只有那么几个,这里我主要说下作用与区别 event.type:获取事件的类型 触发元素的事件类型 $("a").click(function(event) { alert(event.type); // "click"事件 }); event.pageX 和 event.pageY:获取鼠标当前相对于页面的坐标 通过这2个属性,可以确定元素在当前页面的坐标值,鼠标相对于文档的左边缘的位置(

事件对象的属性和方法(转)

4.1 cancleBubble:是否取消冒泡 4.1.1该属性在IE的各个版本都支持 <div id='myDiv' style="width:100px;height:100px;">> <div id="d1" style="width:40px;height:40px;">></div> </div> <script type="text/javascript&q

JS-窗体对象 与 事件返回值属性

窗体对象 //窗体的加载事件 () window.onload=function(){} //当整个页面加载完毕以后再执行窗体加载事件 //窗体的卸载事件 window.onunload=function(){} //当前窗体加载其他页面时,当前页面会被卸载触发onunload //窗体的获得焦点事件 window.onfocus=function(){} //从其他页面跳转到当前页面会触发onfocus事件 //窗体的失去焦点事件 window.onblur=function(){} //从当

010-判断是否回传IsPostBack属性

属性IsPostBack:判断是否回传 如果是第一次请求,则返回false 如果是回传请求,则返回true->说明:只有使用服务器端表单才可以正常使用IsPostBack->使用情境:当在一个页面中,既写了第一次请求代码,也写了回传处理代码,则需要进行判断处理 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits=&

Dynamics CRM Form表单中通过javascript抓取触发change事件字段的属性名

通过以下这段代码能够抓取到change的事件源,从而推断出是哪个属性字段触发的事件, function change(pContext) {var fieldName=pContext.getEventSource().getName(); } 在字段的事件设置中须要将下框中复选框的勾勾上.很多其它的信息可參见SDK.

jQuery 事件对象的属性和方法

event.pageX 和 event.pageY:获取鼠标当前相对于页面的坐标 通过这 2 个属性,可以确定元素在当前页面的坐标值,鼠标相对于文档的左边缘的位置(左边)与 (顶边)的距离,简单来说是从页面左上角开始, 即是以页面为参考点, 不随滑动条移动而变化 event.preventDefault() 方法:阻止默认行为 这个用的特别多,在执行这个方法后,如果点击一个链接(a 标签),浏览器不会跳转到新的 URL 去了.我们可以用 event.isDefaultPrevented() 来确

JavaScript中事件的target属性

target 事件属性可返回事件的目标节点(哪个 DOM 元素触发了该事件),如生成事件的元素.文档或窗口. 语法:event.target <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="jquery/jquery-3.2.1.min.js"></script> <script ty