我有一个简单的 .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/