プログラマーな日々

プログラマーをやっています。好きなツール:WorkFlowy、好きな言語:C#、好きなサービス:Backlog、好きなAWS:AWS Lambda。

DataSourceをバインドしたGridViewでコードを文言で表示する

DataSourceをバインドしたGridViewでコードを文言で表示する方法を紹介します。ここでは、hogeが1のときを"Foo"、2のときを"Bar"で表示するものとして説明します。

ソースコード

aspx

aspxのソースコードにテンプレートフィールドを記述します。

<asp:TemplateField HeaderText="ほげ">
    <ItemTemplate>
        <!-- 「Text="<%# ... %>"」のようにダブルークォーテーションで囲むとパーサーエラーになるので注意 -->
        <asp:Label ID="Label1" runat="server" Text='<%# ConvertToText((int) Eval("hoge")) %>' />
    </ItemTemplate>
</asp:TemplateField>
aspx.cs

ビハインドコードに以下のメソッドを記述します。

protected string ConvertToText(int value) {
    string s;
    switch(value) {
        case 1:
            s = "Foo";
            break;
        case 2:
            s = "Bar";
            break;
        default:
            s = "Undefined";
            break;
    }
    return s;
}