【问题标题】:Master Page can only access control using FindControl母版页只能使用 FindControl 访问控制
【发布时间】:2012-04-29 15:48:08
【问题描述】:

我的一个母版页中有一个奇怪的错误,在 Visual Studio 中我可以正常访问控件。

Me.lblName.Text = "abc"

这编译得很好。但是,当它运行时,我得到通常的空引用错误。设置任何控件的属性的唯一方法是使用

Me.FindControl("lblError").Text = "abc"

似乎出于某种原因,控件未正确初始化。我知道我可以使用init() 等作弊并自己加载它们,但我不应该这样做。让我再说一遍,我不是试图从子页面访问控件,而是母版页本身。

有人知道为什么会这样吗?

【问题讨论】:

  • 尝试将设计器上的标签 ID 更改为“lblNam”,保存,重命名回“lblName”,保存。通过这种方式重新创建声明。该控件是在您的代码隐藏类中还是在 Designer.vb 中声明的?
  • 这些控件是声明式定义的还是在运行时动态创建的?
  • 母版页上是否声明了控件?您尝试在哪个页面阶段(OnLoad、OnInit、OnPreRender...)访问控件?
  • 控件在designer.vb文件中声明,我试图在PageLoad期间设置文本。重命名控件没有效果,仍然得到一个对象引用错误。这真是令人费解。
  • 为什么不在线上传一小段代码,让我们看看?

标签: asp.net visual-studio-2010


【解决方案1】:

除了重命名,还可以尝试从工具箱中删除控件并重新添加。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多