【问题标题】:C# Asp.Net User Control button clickC# Asp.Net 用户控制按钮单击
【发布时间】:2010-12-12 06:39:17
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net controls init


    【解决方案1】:

    进一步检查代码以确保控件的文本没有被覆盖或设置回空文本。 (具体来说,请进一步查看 Page_Init、Page_Init 调用的函数以及 Page_Load 及其调用的函数。)

    如果您看到它在调试器中被设置为您期望的值,那么很可能是其他东西在事后对其进行了更改。这将是您的代码、ViewState 或您的 立即 控件之外的其他内容。找到它,你应该可以做点什么。

    【讨论】:

    • 我的 page_load 中确实有一些代码覆盖了 text 属性!好蠢啊。。
    • 10 次中有 9 次,这就是 st00pid 之类的东西。我们都曾经做过。 :) 我感觉到你的痛苦。
    【解决方案2】:

    我不认为控件完全存在于 init 中。

    本文解释了页面事件周期,并可能解释您遇到的问题: http://www.15seconds.com/issue/020102.htm

    【讨论】:

    • “控件在初始化时不完全存在”是什么意思?那为什么在load事件中加载控件呢?
    【解决方案3】:

    进一步详细说明其他答案。

    每当一个 ASP.Net 站点启动时,都会以非常特定的顺序发生五件事。阅读 Luke 的链接以找出该顺序并相应地绘制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      相关资源
      最近更新 更多