您好我调试UserControls的代码有问题。我将我的UserControls动态添加到布局上的placeHolder。将控件添加到占位符后,当我将VS2008附加到我的工作进程时,我只能调试一次代码。通常当我在IE / Firefox中刷新我的页面时,我的断点再次被击中,但现在它们不是。 这是用于向我的页面添加控件的一些代码:
用于UserControl的ascx,其中cs动态地添加其他UserControl:
<asp:Repeater ID="rptListRenderer" runat="server" EnableViewState="false">
<ItemTemplate>
<asp:PlaceHolder ID="Content" runat="server" />
</ItemTemplate>
</asp:Repeater>
此文件的.cs部分,我添加了控件:
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
Item dataItem = (Item)e.Item.DataItem;
System.Web.UI.WebControls.PlaceHolder content = (System.Web.UI.WebControls.PlaceHolder)e.Item.FindControl("content");
if (content != null)
{
RenderingReference[] renderings = dataItem.Visualization.GetRenderings(Sitecore.Context.Device, false);
foreach (RenderingReference rendering in renderings)
{
string strDataSource = dataItem.ID.ToString();
rendering.Settings.DataSource = strDataSource;
content.Controls.Add(rendering.RenderingItem.GetControl(rendering.Settings));
}
}
}
我还注意到,当我使用Cookie或在动态添加的UserControls中动态添加控件时,我必须重建才能看到效果。 例如:
我添加了一个带有项目GUID的cookie,用于在动态添加的控件上确定HyperLink上的类。该类仅在构建后更改,而我希望在页面刷新后更改而不构建我的项目。 有没有人有类似的问题或可能有一个线索可以发生在这里?如果我需要更具体地说明上述事情之一,请告诉我!
答案 0 :(得分:0)
我现在已经好几次这个问题了。我们正在开发CMS Sitecore,Sitecore有缓存选项。当缓存 - 数据变化对于将控制代码置于后面的渲染时为真时,这些控件将不会重新加载但重新使用。这就是为什么断点不会被击中的原因。