关于asp.net页面生命周期的问题,重新描述了一下,希望能说清楚

问题描述

页面上有三个radioButton控件,r1、r2和r3;还有一个文本框控件t1在设计视图下设置r1的checked属性为true;<asp:RadioButtonID="r1"runat="server"AutoPostBack="True"GroupName="z"Checked="True"OnCheckedChanged="r1_CheckedChanged"/>

设置它们到一个组中;设置它们的autoPostBack=true;设置它们同一个checkchanged事件方法后台代码中:在page_load中写如下代码if(!isPostBack){r2.checked=true;r1.Enabled=false;}在checkchanged中写如下代码voidr1_CheckedChanged(......){if(r1.checked)t1.text="1";if(r2.checked)t1.text="2";if(r3.checked)t1.text="3";}运行后,在页面中点击radiobuttonr3,t1的值应该是3,但结果却是1,请问是怎么回事?

解决方案

本帖最后由 ahking 于 2016-03-27 15:46:56 编辑
解决方案二:
debug一下
解决方案三:
1.确定GroupName是不是都一样;2.每次AutoPostBack都会执行Page_Load中的代码,要确定其中除了IsPoatBack中的代码外没有其他代码,另外每个RadioButton都要有AutoPostBack=true3.建议你把r1.Enabled=false去掉试试(这个不确定,需要你试试)
解决方案四:
if(r1.checked)t1.text="1";if(r2.checked)t1.text="2";if(r3.checked)t1.text="3";按这样写t1.Test是"3"。if(r1.checked)t1.text="1";elseif(r2.checked)t1.text="2";elseif(r3.checked)t1.text="3";按这样写t1.Test才是"1"。因为r1.checked和r3.checked都是true.当r1.enabled=false时,改变r2,r3的checked并不会让r1的checked发生变化。
解决方案五:
不是太明白,这种debug就应该能找到问题所在
解决方案六:
引用3楼qbilbo的回复:

if(r1.checked)t1.text="1";if(r2.checked)t1.text="2";if(r3.checked)t1.text="3";按这样写t1.Test是"3"。if(r1.checked)t1.text="1";elseif(r2.checked)t1.text="2";elseif(r3.checked)t1.text="3";按这样写t1.Test才是"1"。因为r1.checked和r3.checked都是true.当r1.enabled=false时,改变r2,r3的checked并不会让r1的checked发生变化。

可是我是先让r2.checkded=true才让r1.enabled=false的,是不是说明声明方式设置的r1的checked属性在page_load后生效了
解决方案七:
声明方式设置的checked肯定在前,这个写个简单的测试代码就可确定:if(!isPostBack){boolb=r1.checked;r2.checked=true;r1.Enabled=false;}单步调试,看一下b的值你就知道了。WebForm毕竟不是WinForm,在代码中改变checked属性时,并不会马上把这组radio的状态更新,而是在render时一并处理的。所以也无所谓enabled=false在前还是在后。其实可以来个更极端的测试:if(!isPostBack){boolb=r1.checked;r2.checked=true;r3.checked=true;boolb1=r1.checked;boolb2=r2.checked;boolb3=r3.checked;r1.Enabled=false;}这时你可以看到大家都是true,造成的后果你自己试...

时间: 2024-12-27 04:58:57

关于asp.net页面生命周期的问题,重新描述了一下,希望能说清楚的相关文章

关于ASP.NET页面生命周期的整体把握

对于每一个.NET程序员,对于ASP.NET页面生命周期都有一定的了解和把握.关于一些细节方面请参考 http://blog.sina.com.cn/s/blog_5f7aa2970100d5h4.html,内容比较详尽,本文将不再概述.本文主要是从 继承以及视图状态,事件,委托,容器控件以及子控件这些方面来把握和控制整体的页面生命周期. 先看下下面4个相关页面的代码(为降低复杂度,很多代码被删减与精简,仅提供最基本的操作代码).仅仅 几个文件,先看下整体文件的布局,有一个整体的把握.    

记不住ASP.NET页面生命周期的苦恼

介绍 对于ASP.NET开发者,理解ASP.NET的页面生命周期是非常重要的.主要是为了搞明白在哪里放置特定 的方法和在何时设置各种页面属性.但是记忆和理解页面生命周期里提供的事件处理方法(method)非常困 难.互联网上有很多关于页面生命周期内部机制的文章,所以本文只准备简单覆盖技术的基础部分,更主 要的目的是给大家提供一个简单得记忆页面生命周期的方法. 准确的记忆ASP.NET页面生命周期每一个阶段发生了什么事情是比较困难的,一种便于记忆的方法是根 据各个阶段的名字组合出一个缩写.微软的文

Asp.net页面生命周期

前言  本篇记录的是Asp.net页面生命周期,也就是管道模型的最末端HttpHandler的生命周期.(Page继承了IHttpHandler接口.想了解管道模型,请参考asp.net管道模型(管线模型)之一发不可收拾).如有不足请大家指出^_^!!  本篇主要参考:ASP.NET编程模型之页面生命周期十一步详解  ASP.NET编程模型之ASP.NET页面生命周期图解 <亮剑.net 深入体验与实战精要> 正文 1.页面实例化之前:Asp.net工作进程会确定是否需要分析和编译页面从而开始

asp.net页面生命周期详解_实用技巧

Asp.net是微软.Net战略的一个组成部分.它相对以前的Asp有了很大的发展,引入了许多的新机制.本文就Asp.net页面的生命周期向大家做一个初步的介绍,以期能起到指导大家更好.更灵活地操纵Asp.net的作用.当一个获取网页的请求(可能是通过用户提交完成的,也可能是通过超链接完成的)被发送到Web服务器后,这个页面就会接着运行从创建到处理完成的一系列事件.在我们试图建立Asp.net页面的时候,这个执行周期是不必去考虑的,那样只会自讨苦吃.然而,如果被正确的操纵,一个页面的执行周期将是一

详解ASP.NET页面生命周期事件_实用技巧

下面是ASP.NET页面初始的过程:1. Page_Init();2. Load ViewState;3. Load Postback data;4. Page_Load();5. Handle control events;6. Page_PreRender();7. Page_Render();8. Unload event;9. Dispose method called; 下面对其中的一些过程作下描述:1. Page_Init();这个过程主要是初始化控件,每次页面载入执行这个初始过程,

详解ASP.NET页面生命周期_实用技巧

ASP.NET页面运行时候,页面将经历一个生命周期,在生命周期中将执行一系列的处理步骤.包括初始化.实例化控件.还原和维护状态.运行时间处理程序代码以及进行呈现.熟悉页面生命周期非常重要,这样我们才能在生命周期的合适阶段编写代码.如果我们能在写代码的时候想着我们现在是在做生命周期的哪一步那将是非常好的. 几个代表性的问题 在开始的时候我们先思考几个问题,看看我们在描述完页面生命周期的时候,能不能回答上这几个问题 1.为什么在服务器端能通过this.textbox1.Text获取到用户提交过来的数

一起谈.NET技术,关于ASP.NET页面生命周期的整体把握

对于每一个.NET程序员,对于ASP.NET页面生命周期都有一定的了解和把握.关于一些细节方面请参考http://blog.sina.com.cn/s/blog_5f7aa2970100d5h4.html,内容比较详尽,本文将不再概述.本文主要是从继承以及视图状态,事件,委托,容器控件以及子控件这些方面来把握和控制整体的页面生命周期. 先看下下面4个相关页面的代码(为降低复杂度,很多代码被删减与精简,仅提供最基本的操作代码).仅仅几个文件,先看下整体文件的布局,有一个整体的把握. (一)父类的相

艾伟_转载:温习:ASP.NET页面生命周期

ASP.NET 页面生命周期虽然是最基础的东东,但我发现很多人不能准确地的说出,可能多数程序人员只是对深层技术感兴趣的原因吧?可是如果忘记了最基础的东西,有时会给你的开发制造很大的麻烦.现在把MSDN上的ASP.NET页面生命周期贴出来,大家温习一下吧(温习之前请问一下自己你知道吗): ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件处理程序代码以及进行呈现.了解页生命周期非常重要,因为这样做您就能在生命

IIS处理Asp.net请求和Asp.net页面生命周期说明

首先我们要弄清楚两个非常重要的概念: 1, worker process(w3wp.exe). worker process管理所有的来自客户端的请求并给出响应.它是IIS下asp.net应用程序的核心. 2, application pool. 它是worker process的容器,IIS5及之前的IIS版本均没有application pool的概念.每一个application pool对应着一个worker process,在IIS Metabase中维护着Application Po

Asp.Net页面生命周期(多图)

原文 http://www.cnblogs.com/DotNetEnjoy/archive/2013/04/15/3022672.html asp.net的请求处理模型已经讲完几个星期了,但一直没有时间整理,一来是因为知识点确实繁杂,难以整理,二来了解得也不够清晰,存在一些误区.今天有空写下这篇博文,希望大家指正其中的不足,以便能加深对请求响应的理解. 根据自己理解和老师讲课的内容,花了一张图   1.浏览器实际上是一个Socket客户端,它向服务器发送请求报文 2.请求报文被封装为http请求