既存のフィールドを持つリピーター内の年齢を計算したいと思います。
リピーターにデータを入力するためのクエリ:
var qryGetAllBeneficiaries = from p in dbRRSP.Person
join rt in dbRRSP.RelationshipType on p.RelationshipTypeId equals rt.RelationshipTypeId
where p.PlanId == qryPersonDetails.PlanId
orderby p.LastName
select new
{
BeneficiaryLastName = p.LastName,
BeneficiaryFirstName = p.FirstName,
BeneficiaryMiddleName = p.MiddleName,
BeneficiaryAka = p.Aka,
BeneficiaryBirthday = p.Birthdate,
BeneficiaryRelationshipToClient = rt.RelationshipTypeDescription
};
rptBeneficiary.DataSource = qryGetAllBeneficiaries;
rptBeneficiary.DataBind();
リピーター自体:
<asp:Repeater ID="rptBeneficiary" runat="server">
<HeaderTemplate>
<table>
<tr>
<td class="labels displayInput_noWidth">Last Name</td>
<td class="labels displayInput_noWidth">First Name</td>
<td class="labels displayInput_noWidth">Middle Name</td>
<td class="labels displayInput_noWidth">Aka</td>
<td class="labels displayInput_75w">Birthday</td>
<td class="labels displayInput_noWidth">Age</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#DataBinder.Eval(Container.DataItem, "BeneficiaryLastName") %></td>
<td><%#DataBinder.Eval(Container.DataItem, "BeneficiaryFirstName") %></td>
<td><%#DataBinder.Eval(Container.DataItem, "BeneficiaryMiddleName") %></td>
<td><%#DataBinder.Eval(Container.DataItem, "BeneficiaryAka") %></td>
<td><%#DateTime.Parse(DataBinder.Eval(Container.DataItem, "BeneficiaryBirthday").ToString()).ToString("MM/dd/yyyy")%></td>
<td> <%(DateTime.Today.Subtract(DateTime.Parse(DataBinder.Eval(Container.DataItem, "BeneficiaryBirthday").ToString())).Days / 365).ToString()%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
好きな日付文字列にフォーマットする方法を見つけましたが、私が探しているのは、誕生日から今日の日付を引いて、リピーターの各受益者の年齢を取得することです。
私は次の計算をしようとしました:
<td> <%(DateTime.Today.Subtract(DateTime.Parse(DataBinder.Eval(Container.DataItem, "BeneficiaryBirthday").ToString())).Days / 365).ToString()%></td>
しかし、DataBinder.Evalコンテナーを認識せず、別のusingステートメントSystem.ComponentModel.Containerを追加するように求められました。誰かが私が欠けているものを教えてもらえますか?前もって感謝します。