标签: loadcontrol

Asp.net Usercontrol LoadControl问题

我在使用时遇到问题LoadControl( type, Params ).让我解释...

我有一个超级简单的用户控件(ascx)

<%@ Control Language="C#" AutoEventWireup="True" Inherits="ErrorDisplay" Codebehind="ErrorDisplay.ascx.cs" EnableViewState="false" %>

<asp:Label runat="server" ID="lblTitle" />
<asp:Label runat="server" ID="lblDescription" />
Run Code Online (Sandbox Code Playgroud)

代码(c#)背后:

public partial class ErrorDisplay : System.Web.UI.UserControl
{

    private Message _ErrorMessage;    

    public ErrorDisplay()
    {
    }

    public ErrorDisplay(Message ErrorMessage)
    {
        _ErrorMessage = ErrorMessage;
    }    

    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        if (_ErrorMessage != null)
        {
            lblTitle.Text = _ErrorMessage.Message;
            lblDescription.Text = _ErrorMessage.Description;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的Web应用程序的其他地方,我使用以下代码将usercontrol的实例添加到页面:

divValidationIssues.Controls.Add(LoadControl(typeof(ErrorDisplay), new object[] { MessageDetails }));   
Run Code Online (Sandbox Code Playgroud)

我正在使用LoadControl的重载版本,因为我想将Message参数传递给构造函数.这一切看起来都可行.

但是,当在OnPreRender()ErrorDisplay用户控件上触发时,lblTitle和lblDescription变量都是 …

asp.net user-controls loadcontrol

15
推荐指数
1
解决办法
2万
查看次数

LoadControl和Page_Load事件未触发

大家好!我正在通过Web方法加载UserControl,并使用LoadControl功能:

// create page, stringWriter
Page _page = new Page();
StringWriter _writer = new StringWriter();

// get popup control
Controls_Popup_ForumThreadForm _control = _page.LoadControl("~/Controls/Popup_ForumThreadForm.ascx") as Controls_Popup_ForumThreadForm;
Run Code Online (Sandbox Code Playgroud)

然后我做以下事情:

// add control to page
 _page.Controls.Add(_control);

HttpContext.Current.Server.Execute(_page, _writer, false);
Run Code Online (Sandbox Code Playgroud)

问题是控件的Page_Load事件根本不会触发.如果我添加另一个函数,并在将控件添加到页面的Controls集合之前调用它,该函数将触发,但Page_Load事件不会触发.

任何想法,伙计?谢谢大家!

c# asp.net pageload loadcontrol

9
推荐指数
2
解决办法
5368
查看次数

如何LoadControl一个使用VaryByControl OutputCache的控件,指定属性的值

我有一个应该使用缓存的用户控件VaryByControl.该.ascx文件如下所示:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TestControl.ascx.cs" Inherits="mynamespace.TestControl" %>
<%@ OutputCache Duration="10" Shared="true" VaryByControl="Test" %>
<p id="SomeText" runat="server">Nothing</p>
Run Code Online (Sandbox Code Playgroud)

TestControl代码隐藏文件类有一个int Test {...}属性和Page_Load()填充事件处理SomeText同款:

SomeText.InnerText = string.Format(@"Test={0} at {1}", Test, DateTime.Now)
Run Code Online (Sandbox Code Playgroud)

我有一个.aspx看起来像这样的文件:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestPage.aspx.cs" Inherits="mynamespace.TestPage" %>
<%@ Register TagPrefix="xxx" TagName="TestControl" Src="Controls\TestControl.ascx" %>

<!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 runat="server">
    <title></title>
</head>
<body>
    <xxx:TestControl Test="6" runat="server" />
    <xxx:TestControl Test="7" runat="server" />
    <hr /> …
Run Code Online (Sandbox Code Playgroud)

asp.net user-controls caching runtime loadcontrol

5
推荐指数
1
解决办法
2788
查看次数

标签 统计

asp.net ×3

loadcontrol ×3

user-controls ×2

c# ×1

caching ×1

pageload ×1

runtime ×1