C# 在asp.net中继器控件内执行数学计算
我试图将前端asp页面上的DataBinder.eval中的两个数字相乘,但它只是返回0 在数据库中,值如下所示: PPI=0.45 MDPI=0.5 但对于这两种情况,它只返回0C# 在asp.net中继器控件内执行数学计算,c#,asp.net,.net,repeater,C#,Asp.net,.net,Repeater,我试图将前端asp页面上的DataBinder.eval中的两个数字相乘,但它只是返回0 在数据库中,值如下所示: PPI=0.45 MDPI=0.5 但对于这两种情况,它只返回0 <asp:Repeater runat="server" ID="rptFire"> <ItemTemplate> <tr> <td> <%# DataBinder.Eval(Cont
<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>
锻炼
锻炼
我可以这样做吗?这是因为您正在尝试将内容转换为
整数
相反,您应该先尝试将其转换为十进制
,然后再进行乘法:
<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>
锻炼
锻炼
这是因为您正在尝试将中的内容转换为整数
相反,您应该先尝试将其转换为十进制
,然后再进行乘法:
<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>
锻炼
锻炼
使用
而不是
<%# %>
后者是一个数据绑定表达式,您可以自己使用DataBinder.Eval方法来实现
有关差异的解释,请参阅。使用
而不是
<%# %>
后者是一个数据绑定表达式,您可以自己使用DataBinder.Eval方法来实现
有关差异的解释,请参阅。请参阅以下内容:
<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>
锻炼
锻炼
见下文:
<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>
锻炼
锻炼