gpt4 book ai didi

c# - Page_Load 未在 UserControl 中触发

转载 作者:太空狗 更新时间:2023-10-29 22:24:23 25 4
gpt4 key购买 nike

我在类库中用 c# 创建了一个类,并将此控件添加到 default.aspx,但我的代码没有触发 page_load 事件。这是代码:

我做错了什么?

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

html 标签:<RandoIntegerControls:RandomIntegerControl ID="RandomIntegerControl1" runat="server"></RandoIntegerControls:RandomIntegerControl>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;

namespace CSIMedia.WebControls
{

public class RandomIntegerControl : PlaceHolder
{

private Label _Label;


public RandomIntegerControl()
{

}

private void Page_Load(Object sender, EventArgs e)
{

this._Label = new Label();
this.Controls.Add(this._Label);
this._Label.Text = "Enter random values:";

}

}
}

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>

最佳答案

试试这个:

public RandomIntegerControl()
{
this.Load += Page_Load;
}

在页面(和用户控件)中,由于此属性,Page_Load 方法通常会自动附加:

<%@ Page ... AutoEventWireup="true" ... %>

如果你没有 aspx/ascx 文件,它不会自动发生,但你仍然可以用上面的代码手动连接它。

关于c# - Page_Load 未在 UserControl 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5083905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com