データを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
配信日:2017年1月8日午前12:00:00
-
アイテム名:電話
受注日:2017年1月12日午前12時00分00秒AM
配信日:2017年1月19日午前12時00分00秒AM
-
アイテム名:デスク
受注日:2017年3月12日午前12:00:00
配信日:2017年3月19日午前12:00:00
おかげシャヒードので、基本的に再してリストを作成しますsultingデータセットとその順序。良いコール、そして確かに試してみる価値がある。再度ありがとう – rambini
問題はありません。それが答えられたら、質問を閉じることを忘れないでください。 –