4

大家好,如何根据数据字段的值在绑定字段中显示不同的字符串?

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

提前致谢。

4

3 回答 3

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;
    }
于 2012-12-18T21:05:52.350 回答
0

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

这是一些入门代码。

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

使用它,并对使用 RowDataBound 事件进行一些研究。如果您遇到问题,请使用您编写的代码以及您遇到问题的方式更新您的问题。我很乐意提供更多帮助。

研究很重要,这对您在该领域建立技能非常有益。有人问很好,但有时你只能依靠自己。

于 2012-12-18T20:54:37.757 回答
0

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

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

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

于 2013-11-12T12:12:11.177 回答