【问题标题】:Setting alias name for the gridview field为 gridview 字段设置别名
【发布时间】:2012-12-05 10:02:22
【问题描述】:

我的表有一个字段fld_status。它保存值 0 和 1。0 表示活动,1 表示不活动。但我想在 Gridview 中显示含义全名,例如为 0 活动。除了查询之外,还有什么方法可以在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 显示活动和非活动。

【问题讨论】:

  • 显示你的 GridView 的 aspx。

标签: c# asp.net c#-4.0


【解决方案1】:

如果您使用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"; 
    }
}

【讨论】:

  • 我们需要.ToString()吗?不能像&lt;%# Eval("Fld_status") ? "active" : "inactive" %&gt;吗?
  • @Kaf:相应地编辑了我的答案。
  • +1 你值得努力工作。超出用户的预期。 ;)
【解决方案2】:

您可以在ItemTepmlate中使用。

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

【讨论】:

  • 我认为它可以像&lt;%# Eval("Fld_status") ? "active" : "inactive" %&gt; ?不是吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-04
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多