2009-11-02 135 views
1

在我的代码中,我在page_load事件中加载了一个用户控件(uc)。 uc包含一个按钮,将标签文本设置为文本框的值。 (lblTest.Text = txtText.Text)。这在我的页面的加载事件中正常工作。但是当我在我的Init事件中设置uc的加载时,标签没有设置。当我设置断点时,我看到按钮事件被触发,文本被设置(在代码中),但是当页面完成加载时,标签是空的。这怎么可能?C#Asp.Net用户控件按钮点击

回答

3

检查代码中的进一步下降,以保证控制的文本没有被覆盖或重新设置为空文本。 (具体来说,查看Page_Init,Page_Init调用的函数以及Page_Load及其调用的函数)。

如果您看到它在调试器中设置为您期望的值,那么机会相当好事实之后,其他事情正在改变。这将是您的代码,ViewState或您的直接控件之外的其他内容。找到那个,你应该可以做些什么。

+0

我确实在我的page_load中有一些代码覆盖了文本属性!所以很愚蠢.. – Martijn 2009-11-02 13:13:33

+0

9次出10,这是st00pid这样的东西。我们都是这样或那样做的。 :)我感到你的痛苦。 – 2009-11-02 13:16:02

1

我不认为控制完全存在于初始化。

本文介绍的页面事件周期,可以解释你的问题: http://www.15seconds.com/issue/020102.htm

+0

你是什么意思'控制不完全存在init'?那么为什么在加载事件中加载控件? – Martijn 2009-11-02 12:56:46

0

为了进一步阐述其他答案。

每当一个ASP.Net站点启动,五件事发生在非常具体的订单。阅读卢克的链接,找出相应的顺序并进行绘图。