Search code examples
c#asp.net.netrepeater

Performing mathematical calculations inside asp.net repeater control


I'm trying to multiply two numbers together from a DataBinder.eval on the front end asp page but its just returning 0.

In the database the values are as follows;

PPI = 0.45 MDPI = 0.5

But it just returns 0 for both.

<asp:Repeater runat="server" ID="rptFire">
    <ItemTemplate>
        <tr>
            <td>
                <%# DataBinder.Eval(Container.DataItem, "LocationName") %>
            </td>
            <td>
                <%# DataBinder.Eval(Container.DataItem, "SqrMtr") %>
            </td>
            <td>
                <%# Convert.ToInt32(DataBinder.Eval(Container.DataItem, "SqrMtr")) * Convert.ToInt32(DataBinder.Eval(Container.DataItem, "PPI")) %>
            </td>
            <td>
                <%# DataBinder.Eval(Container.DataItem, "PPI") %>
            </td>
            <td>
                <%# Convert.ToInt32(DataBinder.Eval(Container.DataItem, "SqrMtr")) * Convert.ToInt32(DataBinder.Eval(Container.DataItem, "MDPI")) %>
            </td>
            <td>WORK OUT</td>
            <td>WORK OUT</td>

        </tr>
    </ItemTemplate>
</asp:Repeater>

Can I do it this way?


Solution

  • See below:

    <asp:Repeater runat="server" ID="rptFire">
        <ItemTemplate>
            <tr>
                <td>
                    <%#Eval("LocationName") %>
                </td>
                <td>
                    <%# Eval("SqrMtr") %>
                </td>
                <td>
                    <%#String.Format("{0}", Convert.ToInt32(Eval("SqrMtr")) * Convert.ToInt32(Eval("PPI"))) %>
                </td>
                <td>
                    <%# Eval("PPI") %>
                </td>
                <td>
                    <%# String.Format("{0}",Convert.ToInt32(Eval("SqrMtr")) * Convert.ToInt32(Eval("MDPI"))) %>
                </td>
                <td>WORK OUT</td>
                <td>WORK OUT</td>
    
            </tr>
        </ItemTemplate>
    </asp:Repeater>