如果DataBinder.Eval字段为null或空白,请将其删除

时间:2013-06-05 06:52:51

标签: c# gridview eval databinder

实际上我正在绑定gridview中Image控件工具提示的一些数据。

一切正常。看下面的代码

<asp:Image ID="Image1" runat="server" ImageUrl="~/img/images.jpg" ToolTip='<%# (Eval("Comments").ToString().Length == 0? "": "Late Reason - " + DataBinder.Eval(Container.DataItem, "Comments")) + (Eval("Out_Comments").ToString().Length == 0? "" :"| Out Reason - "+ DataBinder.Eval(Container.DataItem, "Out_Comments")) %>' />

我的要求是当数据库中的“注释”字段为空或空白时,应从工具提示中删除此额外文本“延迟原因 - ”,如果“注释”字段不为空或为空,则此工具提示中应包含此额外文本。对于Out_Comments字段也是如此,它有额外的文本“Out Reason - ”。

我该怎么做?

enter image description here

2 个答案:

答案 0 :(得分:1)

试试这个:

<asp:TemplateField>
    <ItemTemplate>
        <asp:Image ID="Image1" runat="server" ImageUrl="~/img/images.jpg"
            ToolTip='<%# !string.IsNullOrEmpty(Eval("Comments") as string)
        ? !string.IsNullOrEmpty(Eval("Out_Comments") as string)
          ? "Late Reason - " + Eval("Comments") + " | Out Reason - " + Eval("Out_Comments")
          : "Late Reason - " + Eval("Comments")
        : "Out Reason - " + Eval("Out_Comments")%>' />
    </ItemTemplate>
</asp:TemplateField>

编辑:将空检查更改为string.IsNullOrEmpty(Eval("Comments") as string)以检查空/空字符串。

答案 1 :(得分:0)

您应该在GridView RowDataBound事件中处理此逻辑。

Image img = e.Row.FindControl("Image1");

if( img != null ) {

    //Apply Logic Here

    img.ToolTip = //End result of logic
}