如何根据数据库中的列值显示文本?

时间:2013-08-30 18:18:05

标签: asp.net

我正在使用模板字段根据表格字段中的条件显示文本。

我有字段名称Qualification我用来存储整数值,如4或3 如果是4则在gridview中显示“研究生”或“研究生”

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
    <asp:Label ID="Label1" runat="server" Text='<%# GetQual(int)(Eval("Qualification")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

public static string GetQual(int value)
    {
        if (value == 4)
        {
            return "Post Graduate";
        }
        else
        {
            return "Graduate";

        }
    }

2 个答案:

答案 0 :(得分:0)

我会使用RowDataBound,因为它更具可读性和可维护性:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRow row = ((DataRowView)e.Row.DataItem).Row;  // dependas on the DataSource, maybe you need to use the debugger to see what it is
        int qualification = row.Field<int>("Qualification");
        Label lblQuali = (Label) e.Row.FindControl("Label1");
        lblQuali.Text = qualification == 4 ? "Post Graduate" : "Graduate";
    }
}

答案 1 :(得分:0)

GetQual函数更改为字符串而不是int。然后,您可以解析GetQual函数内的字符串并进行相应处理。 Eval()将始终返回一个字符串。