【问题标题】:In line if statement not working in a server control如果语句在服务器控件中不起作用
【发布时间】:2014-06-18 03:54:20
【问题描述】:

我有一个gridview,它从数据库中的一个列中提取日期:

<Columns>
   <asp:BoundField DataField="Person" HeaderText="Person" SortExpression="Person" />
   <asp:BoundField DataField="Effort" HeaderText="Effort" SortExpression="Effort" />
   <asp:BoundField DataField="Task" HeaderText="Task" SortExpression="Task" />
   <asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" />
   <asp:BoundField DataField="OriginalEstimateHours" HeaderText="Estimated Hours" SortExpression="OriginalEstimateHours" />
   <asp:BoundField DataField="Total" HeaderText="Total" SortExpression="Total" />
   <asp:TemplateField HeaderText="Last Worked" ItemStyle-HorizontalAlign="Right" >
   <ItemTemplate>
       <asp:LinkButton ID="taskLinkButton" Text='<%# if (Eval("LastWorked").ToString().Length > 0) { Eval("LastWorked").ToString().Substring(0, 9)} %>' runat="server"  />
   </ItemTemplate>
       </asp:TemplateField>
</Columns>

这也将时间拉回来,我想要的只是日期,所以我试图添加一个子字符串。问题是该行中返回的某些字段具有日期,而某些返回 NULL。所以我想制作一个 if 条件,只有当长度> 0

时才会创建一个子字符串

但是,我收到一条错误消息,提示“无效的表达式术语 'if'。

我做错了什么,我该如何解决?

【问题讨论】:

    标签: c# asp.net gridview inline servercontrols


    【解决方案1】:

    我建议将其更改为三元运算符:

    <asp:LinkButton ID="taskLinkButton"
         Text='<%# (Eval("LastWorked").ToString().Length > 0) ? Eval("LastWorked").ToString().Substring(0, 9) : string.Empty %>'
         runat="server"  />
    

    我猜你的方法不起作用的原因是它实际上没有返回任何东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-18
      • 2018-10-12
      • 2012-12-26
      • 2013-06-20
      • 2013-09-04
      • 2014-09-10
      • 2018-02-15
      相关资源
      最近更新 更多