我在我的aspx.cs文件中有这个
var RecordID = db.Records.Where(m => m.EmployeeID == employee.EmployeeID).ToList();
dltRecordDate.DataSource = RecordID;
dltRecordDate.DataBind();
并在.aspx
:
<asp:LinkButton CssClass="list-group-item" Width="100%" BorderStyle="None" Font-Size="Medium" ID="lbnDate" runat="server" Text='<%# Bind("VisitDate") %>' CommandArgument='<%# Bind("RecordNumber") %>'></asp:LinkButton>
我的 VisitDate 是字符串。我想做像
这样的事情Text='<%#DateTime.Parse(Bind("VisitDate")).ToString("dddd, MMMM dd, yyyy")%>'
但是这不会起作用。谢谢
另一种选择就是打印递增数字 1 2 3 4 5
答案 0 :(得分:3)
在后端定义一个方法(GetValidDate
)并使用如下所示:
protected string GetValidDate(object inputDate)
{
DateTime dateObject;
if (inputDate != null)
{
if (DateTime.TryParse(inputDate.ToString(), out dateObject))
{
return dateObject.ToString("dddd, MMMM dd, yyyy");
}
}
return "invalid Input";
}
标记将是:
Text=<%# GetValidDate(Eval("VisitDate"))%>
因此,如果可转换(有效日期),您将获得所需格式的日期,否则特定文本框将显示文本为"invalid Input"
更新:
在注释中,您正在使用(string)Eval("VisitDate")
将对象转换为字符串,但是如果绑定值为null
则不好,所以为了避免这种情况,我们可以将方法签名更改为接受对象并执行转换,如果它不是null