ASP.NETnbsp;Page.IsPostBack

2024-08-28 11:48
文章标签 asp page ispostback netnbsp

本文主要是介绍ASP.NETnbsp;Page.IsPostBack,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有关if (!IsPostBack):

       经常有人忘记写if (!IsPostBack)结果导致提交后取不到用户所选择的列表的值,因为Page_Load先执行,控件被重新初始化了。

       所以,如果你是通过服务器控件触发事件来进行数据库更新的话,在你的page_load事件中把所有程序放在if (!IsPostBack)里面,否则你会发现显示的总是第一次载入的值。

       一个页面第一次显示的时候IsPostBack=false,然后你在这个页面上点击按钮或其它东西提交的时候,IsPostBack=true。

       if(!IsPostBack),获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。

       IsPostBack 由于用户交互(page.submit())提交页面而产生的加载,二次加载。第一次加载页面时,Page.ispostback是false,当触发该页面的web控件时,产生回发,这时候该属性会是true,所以要用if(!IsPostback)来判断,只在第一次进入页面时加载数据。

       Details

(1)if (!IsPostBack) 里面的代码只执行一遍,即页面第一次加载时。

(2)以后页面重新刷新时,if (!IsPostBack)里面的语句不执行。

(3)首次建立页面 IsPostBack为false,用来控制里边的语句只执行一次。

(4)在对控件进行数据绑定时是必须加上的,因为如果不加的话,每一次响应客户端回发时,总是要执行一次Page_Load(),接着又要执行数据绑定的语句了,如此你不能选择数据了。

例子:

一个页面,一个ListBox控件。一个Label。

初次加载时绑定数据到ListBox控件。

用户选择ListBox的项后,自动在Label中显示选中项的值。

代码:
以下代码是没有Page.IsPostBack的时候

protected void Page_Load(object sender, EventArgs e)
    {
        dt =
数据源;
        ListBox1.DataSource = dt; //为ListBox1绑定数据
        ListBox1.DataTextField = "dname"; //设置ListBox1每项的文字为数据源的dname列中的值
        ListBox1.DataValueField = "dfname"; //设置ListBox1每项的值为数据源的dfname列中的值
        ListBox1.DataBind();
    }

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
         Label1.Text = ListBox1.SelectedValue; //
当用户选中ListBox中的列时在Label中显示选中列的值
    }

此时运行页面,在选中ListBox中的值后Label中无法显示ListBox选中项的值。

因为在ListBox的SelectedIndexChanged(控件中的值被选中)发生后,页面自动向服务器提交表单。

服务器处理后(自动提交后服务器将处理protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e里面的内容)),返回客户端,页面重新读取,此时又会运行Page_Load里面的代码,所以页面又会是第一次加载时候的样子。Label中就不会显示 ListBox中选中项的值。

如果Page_Load换成这样:

if (!Page.IsPostBack)
    {
        dt =
数据源;
        ListBox1.DataSource = dt; //为ListBox1绑定数据
        ListBox1.DataTextField = "dname"; //设置ListBox1每项的文字为数据源的dname列中的值
        ListBox1.DataValueField = "dfname"; //设置ListBox1每项的值为数据源的dfname列中的值
        ListBox1.DataBind();
    }

那么,在服务器处理了SelectedIndexChanged后。客户端将得到提示,这是响应客户端回发而加载。那么,绑定ListBox的代码将不会运行。Label中就能正确显示ListBox选中项的值了!

 

这篇关于ASP.NETnbsp;Page.IsPostBack的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1114682

相关文章

vue中路由管理(vue-router,page)使用总结

现在的项目都以模块化的方式去开发,所以在这样的开发模式下,如何更好的去管理路由是开发中所需要考虑的重点,幸运的是当前的开发中已经有了成熟的中间件去管理,我们只需要用就可以了 下面是我在学习vue-router的时候在原来基础上修改出来的demo,也是为了有助于对vue-router的理解 首先理解下vue官网的一个示例demo https://jsfiddle.net/yyx990803/x

asp.net 中GridView的使用方法

可以看看,学习学习 https://blog.csdn.net/zou15093087438/article/details/79637042

基于ASP+ACCESS的教师信息管理系统

摘要 随着我国社会主义市场经济的发展和改革开放的不断深入,计算机的应用已遍及国民经济的各个领域,计算机来到我们的工作和生活中,改变着我们和周围的一切。在以前,学校用手工处理教师档案以及工资发放等繁多的工作和数据时,人手总会出现些不必要的错误和问题,特别是在查找,统计和保存方面。与此相适应,用计算机代替手工管理,是信息社会发展的必然趋势,也是我们计算机工作者的责任。教师信息管理系统开发主要包括数据

ASP.NET状态管理的总结

由于HTTP协议的无状态特性,导致在ASP.NET编程中,每个请求都会在服务端从头到执行一次管线过程, 对于ASP.NET页面来说,Page对象都会重新创建,所有控件以及内容都会重新生成, 因此,如果希望上一次的页面状态能够在后续页面中保留,则必需引入状态管理功能。   ASP.NET为了实现状态管理功能,提供了8种方法,可帮助我们在页面之间或者整个用户会话期间保留状态数据。 这些方法分为二类:

ASP.NET手动触发页面验证控件事件

开发环境:.NET Framework 3.5.1 sp1 参考文章: http://www.codeproject.com/KB/aspnet/JavascriptValidation.aspx http://msdn.microsoft.com/zh-cn/library/aa479045.aspx http://www.cnblogs.com/minsentinel/archive/

ASP.NET Core 入门教学十七 GraphQL入门指南

GraphQL 是一种用于 API 的查询语言,允许客户端请求所需的数据,并能够合并多个资源到一个请求中。在 ASP.NET Core 中使用 GraphQL 可以提供更灵活、高效和实用的数据查询方式。以下是 ASP.NET Core 中 GraphQL 的入门指南: 1. 安装必要的 NuGet 包 首先,你需要安装以下 NuGet 包: GraphQLGraphQL.Server.Tra

解决 Android 上的 .NET MAUI/Xamarin.AndroidX 应用调用 ASP.NET Core API 端点时 SSL 连接被拒绝的问题

从虚拟机调用本地API报各种 SSL 连接不上的错误,这给本地调试造成了极大的不便,在被这个问题困扰了多日以后,终于在GitHub上找到答案 基于这个 帖子 ,有一个回复 他写了一个帮助类,专门用来调试本地的API,并给出了这个调用类的用法,此帮助类如下 using System.Net.Security;public class DevHttpsConnectionHelper{pu

编程语言之争:Rust 社区活跃开发者 Ed Page 谈 Rust 与 C++ 的未来

作者 | Annie Xu 采访 | CSDN&Boolan 首席顾问 卢威 责编 | 何苗 出品丨GOSIM 开源创新汇 你最 pick 哪种编程语言?C++、Rust,还是 Python? Ed Page 从事编程行业十几年,见证了不同编程语言的兴衰史。从 C++标准版本 C++98 的诞生,到 Jave、D、Go 等编程语言的崛起与发展,并跃跃欲试想挑战 C++ 的江湖

Page directive: illegal to have multiple occurrences of contentType with different values (x,X)之解

Question: Page directive: illegal to have multiple occurrences of contentType with different values (old: text/html; charset=utf-8, new: text/html;charset=UTF-8) Analysis: 出现这个的原因是这两个jsp的contentT

ASP.NET初了解---Html控件和Web控件

作为一名ASP.NET的初学者,了解并且区别一些混淆概念是很必须的,今天这篇博文 就是主要向大家介绍一下Html控件和Web控件。在ASP.NET中,用户界面控件主要就是 Html控件和Web控件,在前台页面上看,两种控件非常相似,那么究竟他们有什么不一 样呢?他们又分别适用于什么情况呢?这都是我们需要解决的问题。      (一)首先,先来分别说一说Html控件和Web控件