2012-12-05 29 views
1

我的表有一个字段fld_status。它保存值0和1. 0表示有效,1表示无效。但是我想在Gridview中显示全名,例如0。除查询以外,是否有任何方法可以在Gridview中更改此值0和1有意义的名称?设置gridview字段的别名

<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的状态栏显示为0和1。我想基于O和1

+0

显示您的GridView的aspx。 –

回答

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"; 
    } 
} 
+0

我们需要'.ToString()'吗?它不能像'<%#Eval(“Fld_status”)? “active”:“inactive”%>'? – Kaf

+0

字段名称是'Fld_status' – Kaf

+0

@Kaf:相应地编辑我的答案。 –

1

您可以在ItemTepmlate

<ItemTemplate><%# Eval("Fld_status") ? "active" : "inactive" %></ItemTemplate> 
+0

我认为它可以像'<%#Eval(“Fld_status”)? “active”:“inactive”%>'?不是吗? – Kaf

+0

@Kaf Yep,编辑。 –