Отладка System.Web.UI.UserControl только один раз нажимает точки останова - PullRequest
0 голосов
/ 03 мая 2011

Здравствуйте! У меня проблема с отладочным кодом моих пользовательских контролей. Я добавляю свои пользовательские элементы управления динамически в placeHolder на макете. После того, как элементы управления были добавлены в заполнитель, когда я подключил VS2008 к своему рабочему процессу, я могу отладить свой код только один раз. Обычно, когда я обновляю свою страницу в IE / Firefox, моя точка останова попадает снова, но теперь это не так. Вот часть кода, используемого для добавления элементов управления на мою страницу:

ascx для UserControl, в котором cs динамически добавляет другие UserControls:

<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 или с динамически добавленными элементами управления внутри пользовательских элементов управления, которые добавляются динамически, мне приходится перестраивать, чтобы увидеть эффект. Например:

Я добавляю cookie с GUID элемента, который используется для определения класса в HyperLink в динамически добавленном элементе управления. Класс меняется только после сборки, а я хочу, чтобы он изменился после обновления страницы без сборки моего проекта. Есть ли кто-нибудь вокруг, кто имел подобные проблемы или может иметь представление о том, что может происходить здесь? Если мне нужно быть более конкретным в отношении одной из вышеописанных вещей, пожалуйста, скажите мне!

1 Ответ

0 голосов
/ 11 мая 2011

У меня была эта проблема уже несколько раз. Мы разрабатываем на CMS Sitecore, и у Sitecore есть опции кеширования. Когда Caching - Vary by data имеет значение true при рендеринге, который помещает код элементов управления позади, эти элементы управления не будут перезагружены, а будут использоваться повторно. Вот почему точки останова не будут достигнуты.

...