尝试执行Eval时出现语法错误

时间:2014-02-18 07:37:11

标签: c#

我正在尝试这样做:

     <%# DataBinder.Eval(Container.DataItem, "SERIAL").ToString()!=""? %>
        <a href="javascript:void(0)" id="Desc_lb" runat="server" visible="true">Desc</a>
        <telerik:RadToolTip ID="Description" runat="server" TargetControlID="Desc_lb" Text='Reference Order serial : <%#Eval("SERIAL") %>'></telerik:RadToolTip>
        <%# : "" %>

在转发器ItemTemplate中,但它给了我一个语法错误,一个无效的表达式:syntax error : expected靠近?

3 个答案:

答案 0 :(得分:1)

从我看到并理解,试试这个,这就是你应该做的:

<% if (DataBinder.Eval(Container.DataItem, "SERIAL").ToString() != "") { %>
    <a href="javascript:void(0)" id="Desc_lb" runat="server" visible="true">Desc</a>
    <telerik:RadToolTip ID="Description" runat="server" TargetControlID="Desc_lb" Text='Reference Order serial : <%#Eval("SERIAL") %>'>
</telerik:RadToolTip><% } %>

使用短路是问题

答案 1 :(得分:0)

这是无效的语法,你试图使用表达式? true:错误的语法而不是。

<%# DataBinder.Eval(Container.DataItem, "SERIAL").ToString()!=""? %>

要修复它,请执行codebehind方法并使用eval返回的值调用它,就像这样。

<%# DoStuffWithSerial(DataBinder.Eval(Container.DataItem, "SERIAL"))) %>

答案 2 :(得分:0)

感谢大家的评论,但我找到了我的解决方案,我就这样解决了:

 <a href="javascript:void(0)" id="Desc_lb" runat="server" visible='<%# DataBinder.Eval(Container.DataItem, "SERIAL").ToString()=="" %>'>Desc</a>
        <telerik:RadToolTip ID="Description" runat="server" TargetControlID="Desc_lb" Text='<%# "Reference Order serial :"+ DataBinder.Eval(Container.DataItem, "SERIAL") %>'></telerik:RadToolTip>