使用脚本块动态添加 Web 控件到 .Aspx 页面
我试图将图表控件添加到我的 .aspx 页面,但收到以下错误:
无法修改控件集合,因为该控件包含代码块(即 <% ... %>)。
使用以下代码:
protected void Page_Init(object sender, EventArgs e) {
if (Context.Items.Contains("ajaxChart")) {
ajaxChart = (bool) Context.Items["ajaxChart"];
}
if (Context.Items.Contains("chartControl") && ajaxChart) {
_ChartControl = (ChartControl) Context.Items["chartControl"];
}
if (_ChartControl != null) {
this.portletContent.Controls.Add(_ChartControl);
}
}
aspx页面本身有两个<%...%>;阻止调用我的代码中的方法。
<代码><正文>
<%=渲染()%>
有人解决过这个问题吗?我可以采取另一种方法来解决这个问题吗?我基本上需要将此控件注入到此页面中,并在正确的位置内联运行 Render() 方法I am trying to add a chart control to my .aspx page, but am getting the following error:
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
with this code:
protected void Page_Init(object sender, EventArgs e) {
if (Context.Items.Contains("ajaxChart")) {
ajaxChart = (bool) Context.Items["ajaxChart"];
}
if (Context.Items.Contains("chartControl") && ajaxChart) {
_ChartControl = (ChartControl) Context.Items["chartControl"];
}
if (_ChartControl != null) {
this.portletContent.Controls.Add(_ChartControl);
}
}
The aspx page itself has two <%...%> block calling methods in my code behind.
<body>
Has anyone solved this problem before? Is there another approach I can take to get around this. I basically need to inject this control into this page, and also run the Render() method inline at the right place
<div id="portletContent" runat="server">
<%=Render()%>
</div>
</body>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将 <%= 替换为 <%#(如果可以),或者将 PlaceHolder 控件添加到页面中,并将您的控件添加到 PlaceHolder 的控件集合中。
Either replace the <%= with <%# (if you can) or add a PlaceHolder control into the page and add your control to the PlaceHolder's Control collection.