ASP.Netフォームのコントロールを整数値としていくつかの列挙型を含むデータベーステーブルにバインドする最も効果的なパターンを見つけることを試みています。私は、コード内で定義されたこれらの列挙型を持っている場合たとえば、:ASP.Netのグリッドコントロールに列挙型にバインドする方法
[Flags]
public enum VisibleTo
{
None = 0,
Customers = 1,
Employees = 2,
Managers = 4
}
public enum LinkType
{
AdorableCatVideo = 0,
Selfie = 1,
FakeNews = 2,
Pornography = 3
}
はその後、私のデータベーステーブルの行は次のようなものになります。
をそして、それに基づいて、私はしたいと思いますグリッド上映表示するには、SqlDataSourceコントロールでたDetailsViewのようなコントロールを使用することができる:私はいくつかのコントロールタイプに見てきました
Link Text: Kitten Playing With Yarn
Link URL: http://www.kittens.com/yarn134323.html
Link Type: AdorableKittenVideo (preferably with spaces)
Visible to Customers: [check]
Visible to Employees: [check]
Visible to Managers: [check]
を、そして避難所これを簡単に成し遂げることができるものは見つかっておらず、Googleに何か提案がありませんでした。私が考えることができる最良のアプローチは、Page_Loadメソッドでデータベースを照会し、ヘルパーメソッドを使用してLink Type intを人間が読める文字列に変換し、VisibleToフラグを3つのブール値に分割し、バインドできる別のDataTableを作成し、更新または挿入する前に変換をいくつか行います。
これを達成するためのより洗練された方法を誰も考えることができますか?私はIValueConverterを使用してWPFとXAMLでこのタイプのことを行うのが簡単だと考えていますが、私はASP.Netに精通していません。前もって感謝します!
私の回答はあなたを助けましたか? – hardkoded
@kblok私は引き離されて、これでまだ作業中です。これはおそらく受け入れられた答えではないでしょう。私はそれがバインディングにどのように役立つのか実際にはわかりませんが、有用なコードの場合は、ヘルパーメソッドを使ってデータを変換する方法を選択する必要があります。おそらく。 –