我有库存管理项目

我有带有列TransactionUpdateTransactionUpdatIdOrderNumberBalanceAmountOrderTotalAmtOrderTypeLastUpdateDate

现在在我的场景中,我正在使用中继器加载数据。在转发器中,如果OrderTypeOpening Balance,则应输出客户余额。如果OrderTypeSend Booking,则BalanceAmount应扣除为BalanceAmount-OrderTotalAmt。我想用Eval在转发器中写这个

我试过以下:

<%#(Eval("OrderType").ToString() == ("Opening Balance") ? "BalancAmount" :
                                       (Eval("OrderType").ToString() == "Send Booking") ?  Convert.ToDecimal(Eval("BalanceAmount")) - Convert.toDecimal(Eval("OrderTotalAmt")%>


但这表示:附近的语法错误。这很明显,但我不知道在哪里放置以及如何放置

最佳答案

如果您在中继器中从ASPX页面进行函数调用后面的代码,则可以在该方法中使用Eval()方法。当像您这样复杂的语句时,这可以使代码更易于阅读。

请注意,我不确定我的逻辑是否正确,但是您可以理解并清理思路。

在中继器中:

  <%# BalanceCalc() %>


方法背后的代码

    protected string BalanceCalc()
    {
        switch (Eval("OrderType").ToString())
        {
            case "Opening Balance":
                return "BalancAmount";
            case "Send Booking":
                return Convert.ToString(Eval("BalanceAmount"));
            default:
                return (Convert.ToDecimal(Eval("BalanceAmount")) - Convert.ToDecimal(Eval("OrderTotalAmt"))).ToString();
        }

    }

08-15 14:44