我正在尝试将两个数字从前端asp页面上的DataBinder.eval中相乘,但它只返回0。
在数据库中,值如下;
PPI = 0.45 MDPI = 0.5
但它只为两者返回0.
<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>
我可以这样做吗?
答案 0 :(得分:3)
见下文:
<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>
答案 1 :(得分:1)
这是因为您正在尝试将内容转换为Integer
而不是你应该首先尝试将其转换为decimal
而不是需要乘以:
<asp:Repeater runat="server" ID="rptFire">
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem, "LocationName") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "SqrMtr") %>
</td>
<td>
<%# Convert.ToDecimal(DataBinder.Eval(Container.DataItem, "SqrMtr")) * Convert.ToDecimal(DataBinder.Eval(Container.DataItem, "PPI")) %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "PPI") %>
</td>
<td>
<%# Convert.ToDecimal(DataBinder.Eval(Container.DataItem, "SqrMtr")) * Convert.ToDecimal(DataBinder.Eval(Container.DataItem, "MDPI")) %>
</td>
<td>WORK OUT</td>
<td>WORK OUT</td>
</tr>
</ItemTemplate>
</asp:Repeater>
答案 2 :(得分:1)