Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to do date subtraction on an item in a repeater asp.net
    text
    copied!<p>I want to calculate an Age inside a repeater with an existing field. </p> <p>Query to populate repeater:</p> <pre><code>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(); </code></pre> <p>Repeater itself:</p> <pre><code>&lt;asp:Repeater ID="rptBeneficiary" runat="server"&gt; &lt;HeaderTemplate&gt; &lt;table&gt; &lt;tr&gt; &lt;td class="labels displayInput_noWidth"&gt;Last Name&lt;/td&gt; &lt;td class="labels displayInput_noWidth"&gt;First Name&lt;/td&gt; &lt;td class="labels displayInput_noWidth"&gt;Middle Name&lt;/td&gt; &lt;td class="labels displayInput_noWidth"&gt;Aka&lt;/td&gt; &lt;td class="labels displayInput_75w"&gt;Birthday&lt;/td&gt; &lt;td class="labels displayInput_noWidth"&gt;Age&lt;/td&gt; &lt;/tr&gt; &lt;/HeaderTemplate&gt; &lt;ItemTemplate&gt; &lt;tr&gt; &lt;td&gt;&lt;%#DataBinder.Eval(Container.DataItem, "BeneficiaryLastName") %&gt;&lt;/td&gt; &lt;td&gt;&lt;%#DataBinder.Eval(Container.DataItem, "BeneficiaryFirstName") %&gt;&lt;/td&gt; &lt;td&gt;&lt;%#DataBinder.Eval(Container.DataItem, "BeneficiaryMiddleName") %&gt;&lt;/td&gt; &lt;td&gt;&lt;%#DataBinder.Eval(Container.DataItem, "BeneficiaryAka") %&gt;&lt;/td&gt; &lt;td&gt;&lt;%#DateTime.Parse(DataBinder.Eval(Container.DataItem, "BeneficiaryBirthday").ToString()).ToString("MM/dd/yyyy")%&gt;&lt;/td&gt; &lt;td&gt; &lt;%(DateTime.Today.Subtract(DateTime.Parse(DataBinder.Eval(Container.DataItem, "BeneficiaryBirthday").ToString())).Days / 365).ToString()%&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/ItemTemplate&gt; &lt;FooterTemplate&gt; &lt;/table&gt; &lt;/FooterTemplate&gt; &lt;/asp:Repeater&gt; </code></pre> <p>I figured out how to just format into a date string I like, but what I'm looking for is to subtract today's date from the birthday to get the age of each Beneficiary in the repeater. </p> <p>I tried to do the following calculation: </p> <pre><code>&lt;td&gt; &lt;%(DateTime.Today.Subtract(DateTime.Parse(DataBinder.Eval(Container.DataItem, "BeneficiaryBirthday").ToString())).Days / 365).ToString()%&gt;&lt;/td&gt; </code></pre> <p>but it wouldn't recognize the DataBinder.Eval container and asked me to add another using statement: System.ComponentModel.Container. Can someone tell me what I'm missing? Thanks in advance. </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload