Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 页面加载未在UserControl中触发_C#_Asp.net_C# 3.0 - Fatal编程技术网

C# 页面加载未在UserControl中触发

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" %>

我在类库中的c#中创建了一个类,并将此控件添加到default.aspx中,但我的代码没有触发page#u load事件。代码如下:

我做错了什么

页面已加载,但未在页面上显示标签。我已将控件正确添加到页面,没有任何错误。我已经在那里添加了注册标签

html标记:

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>