C# 页面加载未在UserControl中触发
我在类库中的c#中创建了一个类,并将此控件添加到default.aspx中,但我的代码没有触发page#u load事件。代码如下: 我做错了什么 页面已加载,但未在页面上显示标签。我已将控件正确添加到页面,没有任何错误。我已经在那里添加了注册标签 html标记:C# 页面加载未在UserControl中触发,c#,asp.net,c#-3.0,C#,Asp.net,C# 3.0,我在类库中的c#中创建了一个类,并将此控件添加到default.aspx中,但我的代码没有触发page#u load事件。代码如下: 我做错了什么 页面已加载,但未在页面上显示标签。我已将控件正确添加到页面,没有任何错误。我已经在那里添加了注册标签 html标记: Default.aspx页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
Default.aspx页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register TagPrefix="RandoIntegerControls" Assembly="CSIMedia.WebControls" Namespace="CSIMedia.WebControls"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<RandoIntegerControls:RandomIntegerControl ID="RandomIntegerControl1" runat="server"></RandoIntegerControls:RandomIntegerControl>
</div>
</form>
</body>
</html>
您从占位符继承,占位符是一个Web控件,不会处理页面加载事件。只有用户控件(.ascx)才能隐式处理该事件 根据您发布的代码外观,您可能最好使用UserControl,或者如果您需要它可在多个项目中重复使用,请从头开始创建Web控件。尝试以下方法:
public RandomIntegerControl()
{
this.Load += Page_Load;
}
在页面(和用户控件)中,由于此属性,页面加载方法通常会自动附加:
如果您没有aspx/ascx文件,它不会自动发生,但您仍然可以使用上述代码手动将其连接起来。事实证明,您可以覆盖
aspx
标记文件中的Page\u Load
。该文件继承自基文件
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="TestUserControl.ascx.cs" Inherits="TestUserControl" %>
要覆盖的示例:
<script language="C#" runat="server">
public void Page_Load(object sender, EventArgs e)
{
...
}
</script>
公共无效页面加载(对象发送方,事件参数e)
{
...
}
此函数覆盖代码隐藏版本。当我将此代码转换为vb.net时,一切正常。我是一名VB.Net开发人员,但被要求在我申请的角色中使用c#进行一个测试项目,什么样的方法可以快速完成测试?对不起,我不确定我是否理解这个问题。我写的代码是C#,你要的是VB版本吗?@clint这不是我所做的,从头创建了一个网络控件吗?你的意思是我需要从web控件继承来启动页面加载吗?不,要从头创建web控件,你需要从web控件本身继承并重写相关方法来创建控件。从占位符继承意味着功能已经实现。您被要求具体做什么?@Clint只是为了创建一个应用程序,允许用户输入随机数并按asc或desc顺序显示它们,他们提供了css和html,我只需要让功能正常工作。@Clint谢谢,谢谢大家。我正在解释这些方法及其工作原理,现在基本上我使用了“protectedoverridevidiononinit(EventArgs e)”来触发事件。@Clint这行吗?在使用自定义控件的aspx文件中是否包含了该控件的.ascx文件?否,我已将其删除。我没有创建任何ascx文件。我已经将这个类创建为class.cs文件,并将这个控件类添加到页面中。但是我已经添加了default.aspx页面,但我仍然没有成功。你能显示你在页面中添加控件的代码吗?我复制并复制了代码,但它不允许我添加html,或者我可以通过某种方式添加一些html,我不知道为什么。尝试使用代码示例图标{}添加代码。
<script language="C#" runat="server">
public void Page_Load(object sender, EventArgs e)
{
...
}
</script>