错误:-Extender控件可能未在PreRender之前注册. [英] Error :-Extender controls may not be registered before PreRender.

查看:85
本文介绍了错误:-Extender控件可能未在PreRender之前注册.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用Ajax calenderExtender创建了一个Web用户控件.

我想在页面上动态加载此控件,以便用户可以通过单击链接按钮根据需要创建更多控件.
控件第一次加载,但是在回发时会发生错误:在PreRender之前可能未注册扩展控件"

WebUserControl.ascx的代码段:

I have created a web user control, using Ajax calenderExtender.

I want to load this control dynamically, on a page so that the user can create more controls as he wants by clicking on the link button.
The controls load first time, but on postback, the error occurs : "Extender controls may not be registered before PreRender"

Code Snippet For WebUserControl.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<button runat="server" id="btn">SelectDate</button>
<ajax:CalendarExtender TargetControlID="TextBox1" PopupButtonID="btn" Animated="true" runat="server" PopupPosition="Right" ID="calenderExtender">
</ajax:CalendarExtender>
<ajax:ToolkitScriptManager runat="server" LoadScriptsBeforeUI="true" EnablePartialRendering="true" ID="scriptmanager"></ajax:ToolkitScriptManager></pre></code>
<b>Code Snippet For Default.aspx</b>:
<code><pre lang="xml"><%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Src="~/WebUserControl.ascx" TagPrefix="UC" TagName="Ucontrol" %>
<!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>
    <form id="form1" runat="server">
    <asp:PlaceHolder ID="placeholder" runat="server"></asp:PlaceHolder>
    <asp:Panel ID="panel" runat="server"></asp:Panel>
    </form>
</body>
</html>



Default.aspx.cs的代码段



Code Snippet For Default.aspx.cs

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Control c = this.LoadControl("WebUserControl.ascx");
            Panel pan1 = new Panel();
            pan1.Controls.Add(c);
            placeholder.Controls.Add(pan1);
            Session["controls"] = pan1;
        }
        else
        {
            Panel pan = Session["controls"] as Panel;
            placeholder.Controls.Add(pan);
        }
        LinkButton lb = new LinkButton();
        lb.Text = "Add more controls";
        lb.Click += new EventHandler(lb_Click);
        panel.Controls.Add(lb);
    }
    void lb_Click(object sender, EventArgs e)
    {
        Control c = this.LoadControl("WebUserControl.ascx");
        Panel pan = Session["controls"] as Panel;
        pan.Controls.Add(c);
        placeholder.Controls.Add(pan);
        Session["controls"] = pan;
    }
}


[edit]整理出代码块-下次,在自动检测"功能打开的情况下,请勿复制和粘贴太多代码:您翻译了<和>几次! -OriginalGriff [/edit]


[edit]Code blocks sorted out - next time, don''t copy and paste so much with "Auto detect" switched on: you translated < and > several times! - OriginalGriff[/edit]

推荐答案

我认为您不妨尝试一些
I think you may wish to try some of these links.
It is a very good idea to try a google search on the text of an error message because you usually get some good hits on solutions that way.
Cheers.


这篇关于错误:-Extender控件可能未在PreRender之前注册.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆