评估boundfield上的数据字段以相应地显示文本

时间:2012-12-18 20:43:35

标签: asp.net gridview boundfield

Hello everyone如何根据datafield的值在boundfield中显示不同的字符串?

例如,如果datafield的值为1,则应显示“Pending”。如果是2,“已删除”。

提前致谢。

3 个答案:

答案 0 :(得分:2)

您可以使用服务器端功能显示条件值。

看一下这个样本:

         <asp:TemplateField ItemStyle-CssClass="TemplateFieldOneColumn">
            <ItemTemplate>
                <asp:Label runat="server" Text='<% #GetLabelText(Eval("status")) %>' />
            </ItemTemplate>
         </asp:TemplateField>

这是在主机页面上声明的服务器端功能:

    public string GetLabelText(object dataItem)
    {
        string text = "";
        int? val = dataItem as int?;
        switch (val)
        {
            case 1:
                text = "Pending";
                break;
            case 2:
                text = "Deleted";
                break;

        }
        return text;
    }

答案 1 :(得分:0)

使用TemplateField,而不是BoundField。然后向GridView for RowDataBound添加一个事件。在调用的方法中,您将评估您的值(存储在下面示例中的隐藏字段中)并输出相应的文本(在示例中为Label)。

这里有一些初学者代码。

<ItemTemplate>
  <asp:HiddenField ID="hdnStatus" runat="server" Value='<%# Bind("status") %>' />
  <asp:Label ID="lblStatus" runat="server" />
</ItemTemplate>

使用它,并对使用RowDataBound事件进行一些研究。如果您遇到困难,请使用您编写的代码更新您的问题,以及您是如何陷入困境的。我很乐意帮助更多。

研究很重要,在这方面建立你的技能对你非常有益。有人要问,这很好,但有时候你只能依靠它。

答案 2 :(得分:0)

对于布尔值,你可以这样做:

<asp:Label ID="Label1" runat="server" Text='<%# Boolean.Parse(Eval("Status").ToString()) ? "Yes" : "No" %>'></asp:Label>  

你也可以为其他类型做 希望这会对你有所帮助。