Я хочу рассчитать возраст внутри ретранслятора с существующим полем.Как сделать вычитание даты для элемента в ретрансляторе asp.net
Запроса для заполнения ретранслятора:
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();
самого Repeater:
<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 контейнер и попросил меня, чтобы добавить еще используя оператор: System.ComponentModel.Container. Может ли кто-нибудь сказать мне, что мне не хватает? Заранее спасибо.
Какую версию .NET вы используете? – magnattic
Вам нужно сделать это в самом репитере? Почему в запросе не нужно заполнять репитер? –
atticae: .Net 4.0 – silvenwolf