我会建议在将数据绑定到ListView之前进行CalculateDate()逻辑和排序。例如:
我们假设您需要根据订单日期计算物料的交货日期。
你身后
<asp:ListView ID="ListView1" runat="server">
<ItemTemplate>
Item Name: <asp:Label ID="lblItemName" runat="server" Text='<%# Eval("ItemName") %>' /></br>
Order Date: <asp:Label ID="lblOrderDate" runat="server" Text='<%# Eval("OrderDate") %>' /></br>
Delivery Date: <asp:Label ID="lblDeliveryDate" runat="server" Text='<%# Eval("DeliveryDate") %>' /></br>
</br>
</ItemTemplate>
</asp:ListView>
代码中调用CalculateDeliveryDate(DateTime的orderDate存储)方法计算出的交货日期和更新集合。在将数据源分配给ListView时,您可以根据需要对集合进行排序。
public partial class ListViewExample : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var data = new List<ListModel>
{
new ListModel { ItemName = "Phone", OrderDate = new DateTime(2017,1,12) },
new ListModel { ItemName = "Book", OrderDate = new DateTime(2017,1,1) },
new ListModel { ItemName = "Desk", OrderDate = new DateTime(2017,3,12) }
};
data.ForEach(x => x.DeliveryDate = CalculateDeliveryDate(x.OrderDate));
ListView1.DataSource = data.OrderBy(x => x.DeliveryDate);
ListView1.DataBind();
}
private DateTime CalculateDeliveryDate(DateTime orderDate)
{
return orderDate.AddDays(7);
}
}
public class ListModel
{
public string ItemName { get; set; }
public DateTime OrderDate { get; set; }
public DateTime DeliveryDate { get; set; }
}
你的结果会像
产品名称:书
订购日期:2017年1月1日12:00:00 AM
交货日期:2017年1月8日12:00:00 AM
-
产品名称:电话
订购日期:2017年1月12日12:00:00 AM
交货日期:2017年1月19日12:00:00 AM
-
产品名称:台
订购日期:2017年3月12日12:00:00 AM
交货日期:2017年3月19日12:00:00 AM
感谢沙希德,所以基本上填充重新列表令人难以置信的数据集和命令。好的电话,绝对值得一试。再次感谢 – rambini
没问题。如果问题得到解答,请不要忘记解决问题。 –