#c# #.net #listview
#c# #.net #listview
Вопрос:
Я пытаюсь установить источник данных ListView с помощью запроса LINQ. Он устанавливает источник данных, как ожидалось, когда я просматриваю свой ListView во время отладки, однако он не обновляется в моей веб-форме.
Просмотр списка моей веб-формы:
<asp:ListView ID="SampleDisplayControl" runat="server">
<LayoutTemplate>
<audio src='<%# Eval("Url") %>' controls="" preload="none"></audio>
</LayoutTemplate>
<ItemTemplate>
<asp:Literal ID="label" Text='<%# Eval("Title") %>' runat="server"/>
</ItemTemplate>
</asp:ListView>
Мой серверный:
try
{
SampleDisplayControl.DataSource = from o in getSampleGalleryContainer().GetDirectoryReference("samples").ListBlobs()
select new { Url = o.Uri, Title = GetTitle(o.Uri) };
SampleDisplayControl.DataBind();
}
catch (Exception)
{
}
Генерируемое исключение:
Выдано исключение: ‘System.Исключение InvalidOperationException’ в System.Web.Extensions.dll
Также завершается набор потоков:
Поток ####### завершился с кодом 0 (0x0).
Я не уверен, почему это не работает, так как в аналогичном проекте я использовал именно этот код раньше без проблем.
Комментарии:
1. Где вы видите исключение? В вашем коде это обработано, поэтому не должно прерывать загрузку вашей страницы. Форма не обновляется, вероятно, потому, что «обеспечивает сортировку, обновление, удаление и функциональность подкачки с помощью соответствующего события» learn.microsoft.com/en-us/dotnet/api /… . Я бы порекомендовал вам использовать LinqDataSource learn.microsoft.com/en-us/dotnet/api /… в середине, вместо назначения directq результата LINQ ecpression.
2. Я нашел, что это было, мне нужно было установить заполнители в <LayoutTemplate>
Ответ №1:
Проблема была в моем html. Мне нужно было установить заполнители в шаблоне макета и метку and в . Глупая ошибка, поскольку я неправильно понял, как организовать макет.
<LayoutTemplate>
<audio id="itemPlaceholder" controls="" preload="none" runat="server"></audio>
<asp:Literal ID="labelPlaceholder" runat="server"/>
</LayoutTemplate>
<ItemTemplate>
<audio src='<%# Eval("Url") %>' controls="" preload="none"></audio>
<asp:Literal ID="label" Text='<%# Eval("Name") %>' runat="server"/>
</ItemTemplate>