我有一个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条件,只有当长度为&gt;时才会产生子串。 0
但是,我收到的错误是“无效的表达式术语”,如果是'。
我做错了什么以及如何解决?
答案 0 :(得分:4)
我建议将其更改为三元运算符:
<asp:LinkButton ID="taskLinkButton"
Text='<%# (Eval("LastWorked").ToString().Length > 0) ? Eval("LastWorked").ToString().Substring(0, 9) : string.Empty %>'
runat="server" />
我猜测你的方法不起作用的原因是它实际上并没有返回任何东西。