【问题标题】:DotNetNuke: GridView incompatible with Data Access Layer?DotNetNuke:GridView 与数据访问层不兼容?
【发布时间】:2011-01-25 15:17:08
【问题描述】:

我正在使用 C# 开发 DotNetNuke 模块,为了减少复杂性,我选择尝试将模块的配置保持在一页中(标准设置模块除外)。我现在想知道这个想法有多明智。

我的模块是一个简单的图片库,包含一张或多张图片。每个图像都有一个标题、一个图像源(url)和一个目标(另一个 url)。因此,我认为对于我的管理界面,我可以有一个简单的数据“网格”,您可以在其中编辑所有现有条目或添加新条目,所有这些都在同一页面上,有点像这样:

 标题图片 URL 锚点 HREF
[照片! ] [http://www.example.com/image.jpg ] [http://www.example.com]
[另一张图片!] [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 对象列表?或者是否有更好的方法可以更好地与 DotNetNuke 的 DAL 保持一致?

【问题讨论】:

    标签: asp.net gridview dotnetnuke web-controls


    【解决方案1】:

    您应该能够将DiscoveryInfo 对象列表设置为网格。

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

    【讨论】:

    • 啊,从我阅读的内容来看,我的印象是我必须提供一个 DataSet 或“更接近金属”的东西。回想起来,这是一个简单的解决方案,但是对于刚开始使用 C# 和 ASP.NET 的人来说,这些事情并不是很明显,我对您的回复的最初反应是“哦,我不知道 DataSource 可以接受对象列表”。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多