DotNetNuke: GridView несовместим с уровнем доступа к данным? - PullRequest
0 голосов
/ 25 января 2011

Я работаю над модулем DotNetNuke в C #, и чтобы сократить сложность, я решил попытаться сохранить конфигурацию модуля на одной странице (кроме стандартного модуля настроек).Теперь я задаюсь вопросом, насколько мудрой является идея.

Мой модуль представляет собой простую галерею изображений с одним или несколькими изображениями.Каждое изображение имеет заголовок, источник изображения (URL) и место назначения (еще один URL).Поэтому я решил, что для моего интерфейса администратора у меня может быть простая «сетка» данных, в которой вы можете редактировать все существующие записи или добавлять новые, все на той же странице, что-то вроде этого:

Title              Image URL                           Anchor HREF
[A Picture!      ] [http://www.example.com/image.jpg ] [http://www.example.com]
[Another Picture!] [http://www.example.com/image2.jpg] [http://www.example.net]
[                ] [                                 ] [                      ]

Просматривая WebControls, я нашел GridView, который на первый взгляд казался тем, что я искал.Однако, взглянув на него поближе, я обнаружил, что его необходимо привязать непосредственно к источнику данных, хотя кажется, что стандарт DotNetNuke для работы в уровне доступа к данным заключается в создании коллекции объектов данных, например:

// EditDiscovery.ascx.cs
DiscoveryController objDiscoverys = new DiscoveryController();
List<DiscoveryInfo> lstDiscoveries = objDiscoverys.GetDiscoverys(ModuleId);

// DiscoveryController.cs
public List<DiscoveryInfo> GetDiscoverys(int ModuleId) {
    return CBO.FillCollection<DiscoveryInfo>(DataProvider.Instance().GetDiscoverys(ModuleId));
}

Есть ли что-то, чего мне не хватает в GridView, или мне следует изменить функцию GetDiscoverys, чтобы она возвращала DataSet, а не список объектов DiscoveryInfo?Или есть лучший подход, который лучше сочетается с DAL DotNetNuke?

1 Ответ

1 голос
/ 25 января 2011

Вы должны иметь возможность установить список DiscoveryInfo объектов в сетку.

MyGrid.DataSource = lstDiscoveries;
MyGrid.DataBind();
...