2011-01-25 12 views
0

私はC#のDotNetNukeモジュールで作業していますが、複雑な作業量を減らすために、モジュールの設定を(標準の設定モジュール以外の)1ページに保存しています。私は今、どのようにアイデアが賢明か疑問に思います。DotNetNuke:GridViewはデータアクセスレイヤと互換性がありませんか?

私のモジュールは、1つまたは複数のイメージを持つ単純なイメージギャラリーです。各画像は、タイトル、画像ソース(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関数を変更してDiscoveryInfoオブジェクトのリストとは対照的にDataSetを返す必要がありますか?それとも、DotNetNukeのDALと一直線になるようなことをするより良いアプローチがありますか?

答えて

1

DiscoveryInfoオブジェクトのリストをグリッドに設定することができます。

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

ああ、私が読んでいたことから、私はデータセットや「金属に近い」ものを提供しなければならないという印象を受けました。振り返ってみると、それは簡単な解決策だったが、これらのものは、ちょうどC#とASP.NETで出始め、そしてあなたのrseponseへの私の最初の反応は、ああ、私はDataSourceがかかることがあります知らなかった」でしている人に非常に明白ではありませんオブジェクトの一覧 "を参照してください。ありがとう! – AlexMax

+0

@AlexMaxうれしいです! – bdukes