1

我的表有一个字段fld_status。它保存值 0 和 1。0表示活动,1表示不活动。但我想0在 Gridview 中显示含义全名,如 active for。Gridview除了查询之外,有没有办法改变这个值 0 和 1 有意义的名称?

 <asp:TemplateField ItemStyle-Width="40px" HeaderText="STATUS">
                                    <ItemTemplate>
                                        <asp:Label ID="lbl_status" runat="server" Text='<%# Eval("Fld_status")%>'></asp:Label>
                                    </ItemTemplate>
                                    <ItemStyle Width="40px"></ItemStyle>
                                </asp:TemplateField>

在 gridview STATUS 列中显示 0 和 1。我只想显示基于 o 和 1 的活动和非活动。

4

2 回答 2

2

如果您使用TemplateField

<asp:TemplateField ItemStyle-Width="40px" HeaderText="STATUS">
    <ItemTemplate>
        <asp:Label ID="lbl_status" runat="server" 
            Text='<%# (Eval("Fld_status")==1) ? "active" : "inactive" %>'>
        </asp:Label>
    </ItemTemplate>
    <ItemStyle Width="40px"></ItemStyle>
</asp:TemplateField>

或从 GridView 的RowDataBound

protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRow row = ((DataRowView)e.Row.DataItem).Row;
        bool isActive = row.Field<int>("Fld_status") == 1;
        Label lbl_status = (Label) e.Row.FindControl("lbl_status");
        lbl_status.Text = isActive ? "active" : "inactive"; 
    }
}
于 2012-12-05T10:11:16.193 回答
1

您可以在ItemTepmlate.

<ItemTemplate><%# Eval("Fld_status") ? "active" : "inactive" %></ItemTemplate>
于 2012-12-05T10:13:12.123 回答