Я использую smoughtScrollBy ()
для прокрутки до определенной позиции в ListView
. Необходимо получать уведомления о завершении прокрутки ListView
для интеграции его с текущим событием onScrollStateChanged ()
, инициируемым при прокрутке пользователя пальцем.
В настоящее время я использую таймер
, который запускается через 100 мс после длительности плавной прокрутки, но это не так, как хотелось бы.
Возникла странная проблема с методом RenderControl.
У меня есть UserControl (ASCX-файл) с разметкой:
<ul>
<asp:Repeater ID="rptImages" runat="server">
<ItemTemplate>
<li>
<a href="<%# ((Image)Container.DataItem).Url %>">
<img src="<%# ((Image)Container.DataItem).Url %>?mw=80&mh=50" title="<%# ((Image)Container.DataItem).Title %>" alt="<%# ((Image)Container.DataItem).Alt %>" />
<p><%# ((Image)Container.DataItem).Description %></p>
</a>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
Когда этот код выполняется в обычном жизненном цикле страницы (например, при добавлении на страницу), он визуализирует действительный XHTML как разметку:
<ul>
<li>
<a data-fullscreen="/someimage.jpg" href="/another-image.jpg">
<img src="/myimage?mw=80&mh=50" title="Image Title" alt="Alt Text" />
<p></p>
</a>
</li>
</ul>
Обратите внимание на то, как тэг p имеет закрывающий тэг (даже если он пуст), а тэг изображения также имеет закрывающий тэг.
Когда я создаю экземпляр этого элемента управления на сервере и пытаюсь разобрать его в последовательность с помощью метода RenderControl () следующим образом:
StringBuilder builder = new StringBuilder();
using (StringWriter writer = new StringWriter(builder))
{
using (XhtmlTextWriter htmlWriter = new XhtmlTextWriter(writer))
{
var control = (GalleryControl)LoadControl("~/layouts/Controls/Gallery/GalleryControl.ascx");
control.Images = m_images;
control.RenderControl(htmlWriter);
}
}
return builder.ToString();
Тогда возвращаемый XHTML выглядит следующим образом:
<ul>
<li>
<a data-fullscreen="/someimage.jpg" href="/another-image.jpg">
<img src="/myimage?mw=80&mh=50" title="Image Title" alt="Alt Text">
<p>
</a>
</li>
</ul>
Обратите внимание, что в тэге изображения отсутствует закрывающий тэг, а тэг p также не закрывается, что делает этот XHTML недействительным.
Я потратил на это целый день. Я попытался передать в RenderControl XhtmlTextWriter, а не GroupTextWriter, но это не имело никакого значения.
Сталкивался ли кто-нибудь еще с этой проблемой? Это довольно причудливо и у нас много в команде оступилось на данный момент! Любая помощь или идеи будут оценены.
EDIT:
Вероятно, следовало упомянуть, что этот код выполняется в стеке процессоров Sitecore. Он работает в стеке процессоров «renderField» непосредственно перед процессором ExpandLinks.