Asp.net ASP-WebForm中基于插件(UserControl)的系统实现
我有许多Asp.net ASP-WebForm中基于插件(UserControl)的系统实现,asp.net,user-controls,asp.net-placeholder,Asp.net,User Controls,Asp.net Placeholder,我有许多UserControls,我想在一个aspx页面中根据querystring加载它们 我有以下两种方法: 在aspx页面和page\u Load/page\u Render事件中添加占位符: UserControl uc = (UserControl)LoadControl("/PATH/ProductGroups.ascx"); phMain.Controls.Add(uc); 添加MasterPage,然后添加aspx并使用MasterPage,然后在aspx 但在这两种情况下,
UserControls
,我想在一个aspx
页面中根据querystring
加载它们
我有以下两种方法:
aspx
页面和page\u Load/page\u Render
事件中添加占位符
:
UserControl uc = (UserControl)LoadControl("/PATH/ProductGroups.ascx");
phMain.Controls.Add(uc);
MasterPage
,然后添加aspx
并使用MasterPage,然后在aspx
The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.
顺便说一句,我在加载的UserControl
中使用了telerik TextEditor
我怎么办
我想我唯一的办法是,每个UserContorl
有多个aspx
,没有MasterPage
,这太糟糕了,你知道的!因为我必须在所有页面中逐个修复HTML/CSS/JS
,这不是专业版
注意:如果不使用telerik TextEditor
,一切正常,但我需要这个,而且这个wat(在占位符中加载UserControl
)也不是很好的方法
我正在寻找类似DNN的内容。我试图复制此错误,但无法复制。这对我来说很好。以下是我在VS2013中尝试的内容
1) 添加母版页
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="Test.Site1" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager>
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
“无法修改控件集合”错误的解决方法是什么?请使用占位符(无母版页)测试代码。是,这对我来说也很好。若您并没有使用母版页,那个么请确保在表单标签内的那个页上添加telerik:RadScriptManager。如果仍然出现相同的错误“控件集合无法修改”,请确保标题标记的格式为“否,我用ckeditor替换了telerik texteditor,并使用了母版页,但谢谢!
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="Test.WebUserControl1" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<telerik:RadEditor runat="server" ID="RadEditor1" SkinID="DefaultSetOfTools" Height="675px">
</telerik:RadEditor>
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="Test.WebForm3" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:PlaceHolder runat="server" ID="phMain" />
</asp:Content>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Test
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
UserControl uc = (UserControl)LoadControl("~/WebUserControl1.ascx");
phMain.Controls.Add(uc);
}
}
}