Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net中继器控件内执行数学计算_C#_Asp.net_.net_Repeater - Fatal编程技术网

C# 在asp.net中继器控件内执行数学计算

C# 在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页面上的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>

锻炼
锻炼

我可以这样做吗?

这是因为您正在尝试将内容转换为
整数

相反,您应该先尝试将其转换为
十进制
,然后再进行乘法:

<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>

锻炼
锻炼