首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Dropdown.SelectedIndex在Page_Load事件中没有正确的值,但在Render事件中具有正确的值

Dropdown.SelectedIndex在Page_Load事件中没有正确的值,但在Render事件中具有正确的值
EN

Stack Overflow用户
提问于 2010-12-02 04:18:12
回答 2查看 1.3K关注 0票数 0

我在用户控件中有一个aspnet下拉列表。此用户控件将加载到the表单中。这个页面上也有一个提交按钮。回发时,selectedItem不会在Page_load处理程序中显示正确的值,但会在预呈现处理程序和呈现处理程序中显示正确的值。我的印象是视图状态设置在page_load之前。

EN

回答 2

Stack Overflow用户

发布于 2010-12-02 04:58:00

您可能正在重新绑定pre_render和page_load之间的下拉列表。正如事件所说,pre_render允许您在呈现页面上的任何控件之前执行某些操作。因此,一旦您的页面呈现(在page_load之前),它就会对您的下拉列表进行数据绑定,并擦除您选择的值。

解决这个问题的最简单的方法是只在需要绑定下拉列表时才在代码中绑定它,比如第一次加载页面时,而不是在回发时。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (!IsPostBack)
{
    //Do all of your data binding here
    DataBind();
}
票数 1
EN

Stack Overflow用户

发布于 2011-03-22 23:58:23

以下是最好的推荐解决方案。它在于正确理解页面生命周期!!像下拉列表这样的回发控件恢复它们的投递状态(下拉列表中的选定项已投递)。它忘记了它选择的值,因为您在Page_Load事件中重新绑定它,这是在下拉列表加载了POST值之后(因为View State是在Page_Init事件之后、Page_Load事件之前加载的)。在这个在Page_Load事件中的重新绑定中,下拉列表忘记了它恢复的选定项。最好的解决方案是在Page_Init事件而不是Page_Load事件中执行数据绑定。

做一些像下面这样的事情...

假设下拉列表名称为lstStates。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
protected void Page_Init(object sender, EventArgs e)
{
   lstStates.DataSource = QueryDatabase(); //Just an example.
   lstStates.DataTextField = "StateName";    
   lstStates.DataValueField = "StateCode"; 
   lstStates.DataBind();
}

ASP.NET在Page_Init事件之后和Page_Load事件之前加载控件的视图状态,因此下拉列表的selectedIndex不会受到影响,您将神奇地获得所需的结果!!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4331625

复制
相关文章
如果正确读取SQL Server中的扩展事件?
    SQL Server中使用扩展事件捕捉所需的信息后,可以选择存放的位置。比如说内存或文件中,但无论存在哪里,其本质都是一个大XML。因此在SQL Server中读取该XML就是解析扩展事件结果的方式。     微软官方或者一些SQL Server论坛提供了使用SQL XML解析扩展事件的脚本,如代码清单1所示。 1: WITH events_cte 2: AS ( SELECT DATEADD(mi, 3:
用户1217611
2018/01/30
1.4K0
如果正确读取SQL Server中的扩展事件?
微软官方或者一些SQL Server论坛提供了使用SQL XML解析扩展事件的脚本,如代码清单1所示。
全栈程序员站长
2022/07/11
3.3K0
Go 100 mistakes之如何正确设置枚举值中的零值
我们知道,在Go中会给定义的变量一个默认值,比如int类型的变量默认值是0。我们在定义枚举值时,往往也会从0值开始定义。本文就解释如何区分是显示指定了变量的0值还是因为确实字段而得到的默认值。
Go学堂
2023/01/31
3.8K0
Winform 中 DesignMode 返回值不正确的问题。
本文转载:http://blog.csdn.net/sabty/article/details/5325260
跟着阿笨一起玩NET
2018/09/18
1.6K0
论获取缓存值的正确姿势
论获取缓存值的正确姿势 cache 时至今日,大家对缓存想必不在陌生。我们身边各种系统中或多或少的都存在缓存,自从有个缓存,我们可以减少很多计算压力,提高应用程序的QPS。 你将某些需要大量计算或查询的结果,设置过期时间后放入缓存。下次需要使用的时候,先去缓存处查询是否存在缓存,没有就直接计算/查询,并将结果塞入缓存中。 Object result = cache.get(CACHE_KEY);if(result == null){ //重新获取缓存 result = xxxx(xxx);
李海彬
2018/03/23
1.8K0
论获取缓存值的正确姿势
正确使用Java事件通知
让我们从一个最简单的 Java Bean 开始,它叫StateHolder,里面封装了一个私有的 int 型属性state 和常见的访问方法:
哲洛不闹
2018/09/18
2K0
正确使用Java事件通知
Protobuf在Cmake中的正确使用
Protobuf是google开发的一个序列化和反序列化的协议库,我们可以自己设计传递数据的格式,通过.proto文件定义我们的要传递的数据格式。例如,在深度学习中常用的ONNX交换模型就是使用.proto编写的。我们可以通过多种前端(MNN、NCNN、TVM的前端)去读取这个.onnx这个模型,但是首先你要安装protobuf。
老潘
2023/10/19
1.7K0
Protobuf在Cmake中的正确使用
react事件传值
React 父子组件传值 写法一:bind绑定this class XiaojiejieItem extends Component { render() { return ( <li onClick={this.delItem.bind(this)}>{this.props.list}</li> ); } delItem() { console.log(this.props.index) } } 写法二
hss
2022/02/25
4340
事件_窗体传值
本实项目创建步骤记录: 1、创建两个Webform窗体 2、实现功能::在form1窗体中点击按钮---->将文本框中的值传递到,From2中文本框中。 3、用事件来实现;跟据以前学的知识,知道,事件的核心其实就是委托; 1)、在Form1中声明一个无返回值类型void的委托 Mydel public delegate void Mydel(); 2)、在单击事件方法前声明一个 委托字段 public event Mydel _mdl; 4、事件定义完毕! 5、单击按钮后,显示窗体Form2,同时对这个按钮注册一个事件 1)、this._mdl += 输入完毕后,, 通常是点击 Tab键进行事件的补全;; 这里不需要。。这里 使用的是new Mydel( );方便在这里进行传递方法名字f2.SetTxt; 2)、怎么样将一种的值传递过道Form2中 3)、假设这里有一方法 SetTxt() 就是存在Form2这个类中。。就是用来改变Form2文本 框中的内容的。 4)、其实这个方法SetTxt()就是存在,Form2中的。。那么,这就需要手动的写这个方法 在Form2类中。 5)、这个SetTxt()方法是通过Form1中的事件来调用方法名字(f2.SetTxt)。也可以说是 委托来调用的,,。。。。 6)、使用事件也是需要判断是否为null的,, if(this._mdl!=null) { this._mdl(); //不为null就调用。。。简记:说是调用,就是在mdl后边加上一对 () } 7)、当你写方法f2.SetTxt的时候,有错误。。为什么呢?因为你定义的委托Mydel中没有参 数。但是你这里用了参数 "f2.SetTxt" this._mdl+=new Mydel(f2.SetTxt); 8)、所以返回委托定义的地方,添加上 参数 string name 9)、F6生成成功的! 6、如何传值呢? 7、可以把Text.Box1.Text作为参数放到this._mdl() if(this._mdl!=null) { this._mdl(Text.Box1.Text); //就是对f2.SetTxt()赋值了 } 8、此时报错了。为什么,因为在Form2中的方法SetTxt()并没有声明参数,所以要对Form2中的方法 。进行SetTxt()的变量申明一个字符串的变量; public void SetTxt(string name); 9、接着,在Form2这个public void SetTxt(string name);方法下进行函数功能的实现 public void SetTxt(string name) { textBox1.Text=name; }
静心物语313
2020/03/24
1.1K0
Java Map按值排序的正确姿势
1、 Java 8 – Sorting HashMap by values in ascending and descending order
明明如月学长
2021/08/27
3.6K0
正确调用事件处理程序
不管是刚接触 C# 还是已经具有多年开发经验的大部分人会觉得事件处理很简单,只需要把事件定义好然后在需要的时候出发它就可以了。其实这种想法是错误的,这里面有很多需要注意的问题。下面这段代码是大部分开发人员经常使用的定义事件处理程序的方法。
喵叔
2020/09/08
8660
vue如何正确销毁当前组件的scroll事件?
将方法写出来,销毁在beforeDestroy写。 mounted(){ window.addEventListener("scroll",this.handleFun), }, methods:{ handleFun(){ let t = document.documentElement.scrollTop || document.body.scrollTop; let tabBar = document.getElementById("tabBar"); if(
蓓蕾心晴
2018/04/12
2.1K0
如何正确使用Node.js事件[每日前端夜话0x4B]
事件驱动的编程变得流行之前,在程序内部进行通信的标准方法非常简单:如果一个组件想要向另外一个发送消息,只是显式地调用了那个组件上的方法。但是在 react 中用的却是事件驱动而不是调用。
疯狂的技术宅
2019/04/23
3.6K0
如何正确使用Node.js事件[每日前端夜话0x4B]
selec/poll中的读写事件和epoll中的读写事件
在Linux网络编程中,常常使用select和poll来做事件触发,监听socket的读写状态,然后进行读写操作。现在新的linux内核中,增加了epoll事件触发机制,具有更高的性能和更好的设计理念,可以用它来完全代替select和poll。相比于select,epoll最大的好处在于它不会随监听fd数目的增长而降低效率。因为在内核总的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件中有这样的声明: [cpp] view pl
李海彬
2018/03/22
3.2K0
在PHP中strpos函数的正确使用方式
首先简单介绍下 strpos 函数,strpos 函数是查找某个字符在字符串中的位置,这里需要明确这个函数的作用,这个函数得到的是位置。 如果存在,返回数字,否则返回的是 false。 而很多时候我们拿这个函数用来判断字符串中是否存在某个字符,一些同学使用的姿势是这样的 // 判断‘沈唁志博客’中是否存在‘博客’这个词 if (strpos('沈唁志博客', '博客')) { // 如果存在执行此处代码 echo '存在'; }else{ // 如果不存在执行此处代码 e
沈唁
2018/05/24
5.2K0
在Go中如何正确重试请求
我们平时在开发中肯定避不开的一个问题是如何在不可靠的网络服务中实现可靠的网络通信,其中 http 请求重试是经常用的技术。但是 Go 标准库 net/http 实际上是没有重试这个功能的,所以本篇文章主要讲解如何在 Go 中实现请求重试。
luozhiyun
2022/09/21
2K0
在Go中如何正确重试请求
事件总线怎么传值?事件总线有什么特点?
事件总线是软件管理工作中经常用到的机制,它已经变得越来越重要。实现事件总线并不困难,操作起来也没用太大的难度,我们需要了解它的逻辑和方式,这样才能在工作中将事件总线运用到淋漓尽致。那么,事件总线怎么传值呢?下文将针对这一问题做详细介绍。
用户8715145
2022/03/18
6800
Go 100 mistakes之不正确的值比较
我们从一个具体的例子开始。我们将创建一个customer结构体,并使用 == 操作符来比较两个实例。下面的代码将会输出什么呢?
Go学堂
2023/01/31
1.1K0
Spring中的事件
文章目录 1. 简介 2. 事件 2.1. Spring中内置的事件 2.2. 自定义事件 3. 监听器 3.1. 实现ApplicationListener接口 3.2. 使用@EventListener注解 4. 事件发布 4.1. Spring的事件发布类 4.2. 直接注入 4.3. 使用ApplicationEventPublisherAware注入 5. 事件多播器 6. 异步事件 6.1. 使用@Async实现异步 6.2. 自定义事件多播器 7. 源码解析 简介 学过编程语言的肯定知道事
爱撒谎的男孩
2019/12/31
1.3K0
Java Map通过值来获取键的正确姿势
本文将展示3种,Java中通过Map的值获取其键的方式。本文将讨论不同方法的优缺点。如果想学习Map的更多内容,参见The Java HashMap Under the Hood 
明明如月学长
2021/08/27
5.7K0

相似问题

DropDownList: select事件没有正确返回选定的值

54

在ajax dateSelect事件更新后,Primefaces值没有设置正确的值。

17

在Flutter中显示为空,但在Future中具有正确的值

115

facebook事件start_time没有返回正确的值

10

在JS中具有正确的“this”值

53
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文