C# In line if语句在服务器控件中不起作用
我有一个gridview,它从数据库的一列中提取日期:C# In line if语句在服务器控件中不起作用,c#,asp.net,gridview,inline,servercontrols,C#,Asp.net,Gridview,Inline,Servercontrols,我有一个gridview,它从数据库的一列中提取日期: <Columns> <asp:BoundField DataField="Person" HeaderText="Person" SortExpression="Person" /> <asp:BoundField DataField="Effort" HeaderText="Effort" SortExpression="Effort" /> <asp:BoundField Da
<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时才做一个子字符串
然而,我得到一个错误,说“无效的表达式项”如果
我做错了什么?如何修复它?我建议将其更改为三元运算符:
<asp:LinkButton ID="taskLinkButton"
Text='<%# (Eval("LastWorked").ToString().Length > 0) ? Eval("LastWorked").ToString().Substring(0, 9) : string.Empty %>'
runat="server" />
我想,您的方法不起作用的原因是它实际上没有返回任何内容。我建议将其改为三元运算符:
<asp:LinkButton ID="taskLinkButton"
Text='<%# (Eval("LastWorked").ToString().Length > 0) ? Eval("LastWorked").ToString().Substring(0, 9) : string.Empty %>'
runat="server" />
我想,你的方法不起作用的原因是它实际上没有返回任何东西