c# - 无法访问 Page_Load 中的控件

标签 c# asp.net web-applications user-controls

我有一个简单的 .ascx 文件

<%@ Control Language="C#"
    AutoEventWireup="true"
    CodeFile="Profile.ascx.cs"
    Inherits="UserControls_Profile" %>
<%@ Register Assembly="RadChart.Net2"
    Namespace="Telerik.WebControls"
    TagPrefix="radC" %>
<div id="testdiv" runat="server"></div>

在代码后面:

protected void Page_Load(object sender, EventArgs e) {
  Chart();
}

private void Chart() {
  testdiv.Visible=false;
}

当我尝试访问该页面时,出现异常:

error CS0103: The name 'testdiv' does not exist in the current context

我也尝试过 onload,但结果相同!

最佳答案

如果你有一个 HTML div,你需要添加一个 runat 属性,例如

  <div id="testDiv" runat="server">Hello world</div>

尽管 div 等 HTML 元素不是 ASP.NET 控件,但将 HTML“控件”与 ASP.NET 混合可能会出现问题。您可能更喜欢做类似的事情

  <asp:panel id="myPanel" runat="server">Hello world</asp:panel>

更新:还要检查 Profile.ascx.designer.cs,它应由 Visual Studio 自动生成以包含“ protected HtmlControl testdiv”。我认为部分类中缺少这一点。我注意到您从 UserControls_Profile 派生,这可能会导致困惑。

关于c# - 无法访问 Page_Load 中的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2041252/

相关文章:

python - PDF 文件方向检测

c# - CurrentCellDirtyStateChanged 提交得太早

c# - 如何使用 pinvoke 将图像从 c 或 c++ 发送到 C#

c# - 使用 C# 中的参数化查询发送 SQL 中 IN 运算符的参数

asp.net - 在Docker容器中安装ASP.Net 3.5

web-applications - 在 Ktor 0.9.0 servlet 中控制 cookie 生命周期

java - AJAX 与 Spring MVC

c# - 如何检查以 结尾的字符串是否有效?使用正则表达式

c# - 处理具有相同内容的 HTTP 请求

javascript - 如何从在客户端添加行的表中获取数据?