Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Двумерный массив в DataList / 8 сообщений из 8, страница 1 из 1
04.10.2006, 18:34
    #34032914
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двумерный массив в DataList
Есть двумерный массив.

Нужно отобразить каждую строку массива в строке DataList, соответственно каждый элемент в отдельном контроле на темплейт Даталиста.

Выводит по очереди каждый элемент массива в каждой строке DataList.

Вывожу так




            DataList1.DataSource = myArr;
            DataList1.DataBind();
Привязываю:
                    <asp:Label ID="Label11" runat="server" Text='<%# Container.DataItem %>'></asp:Label>

Пытался создавать одномерный массив массив объектов со свойствами соответствующими и привязывать таким образом
                    <asp:Label ID="Label11" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "RoomId") %>'></asp:Label>



Выдает ошибку
DataBinding: 'System.String' does not contain a property with the name 'RoomId'.

Каким образом можно решить эту задачу?
...
Рейтинг: 0 / 0
04.10.2006, 20:18
    #34033081
Dimon aka Manowar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двумерный массив в DataList
Попробуй массив массивов использовать, ну и при биндинге приводить Container.DataItem к правильному типу массива

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
05.10.2006, 16:45
    #34035436
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двумерный массив в DataList
Что вообще содержится в Container.DataItem если я DataSource присваиваю массив?
У меня массив объектов ListRoom
Если пишу так:



 <asp:Label ID="Label11" runat="server" Text='<%# (Container.DataItem as ListRoom).RoomId%>'></asp:Label>

Ошибка Object reference not set to an instance of an objectЕсли так:
<asp:Label ID="Label11" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "RoomId") %>'></asp:Label>


То ошибка

DataBinding: 'ListRoom' does not contain a property with the name 'RoomId'

Свойство RoomId естественно есть...
...
Рейтинг: 0 / 0
05.10.2006, 17:00
    #34035498
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двумерный массив в DataList
может вот так?
<asp:Label ID="Label11" runat="server" Text='<%# Container.DataItem[0] %>'></asp:Label>
<asp:Label ID="Label12" runat="server" Text='<%# Container.DataItem[1] %>'></asp:Label>
...
Рейтинг: 0 / 0
05.10.2006, 17:27
    #34035618
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двумерный массив в DataList
может вот так?
<asp:Label ID="Label11" runat="server" Text='<%# Container.DataItem[0] %>'></asp:Label>
<asp:Label ID="Label12" runat="server" Text='<%# Container.DataItem[1] %>'></asp:Label>

Увы
'System.Web.UI.WebControls.DataListItem.DataItem' is a 'property' but is used like a 'method' D:\PROJECTS\BukovelWEB\WEB\Default.aspx 204
...
Рейтинг: 0 / 0
05.10.2006, 20:40
    #34036037
Dimon aka Manowar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двумерный массив в DataList
А какой язык у сайта? Может васик? тогда нужно CType использовать для приведения типа.

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
06.10.2006, 10:16
    #34036709
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двумерный массив в DataList
А какой язык у сайта? Может васик? тогда нужно CType использовать для приведения типа.


язык C#

Проблему решил так - создал DataTable с нужной мне структурой, загнал данные из массива и на датасоурс листа передал эту таблицу.
...
Рейтинг: 0 / 0
27.10.2006, 11:36
    #34086310
dm.
dm.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двумерный массив в DataList
На самом деле все банальнее, можно использовать и custom datasource:

для приведенного случая:
<%# ((ListRoom)Container.DataItem).RoomId %>

примечание: вместо ListRoom надо подставить полный путь к классу (namespace), если он не в той же сборке.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Двумерный массив в DataList / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]