在网格视图的新列中显示计算值

时间:2014-01-31 11:39:23

标签: c# asp.net sql-server gridview

在asp.net中使用gridview,    我在gridview中显示来自数据库的数据,但我有2列grossamount和deductionamount

需要传递值和减去的总和  例如:总和(总计)-sum(扣除)=子数量,如果type =“g”,也应根据类型采取

总数据应该总和,反之亦然 例如:

<asp:TemplateField ItemStyle-Width="13%" HeaderStyle-HorizontalAlign="Left">
    <HeaderTemplate>
      Amount
    </HeaderTemplate>
    <ItemTemplate>
        <asp:Label ID="lblAmount" runat="server" Text='<%# Eval("PayeeAmount")%>'></asp:Label>
    </ItemTemplate>
    <ItemStyle CssClass="item_Style1" />
    <EditItemTemplate>
        <table cellpadding="0" cellspacing="0" border="0">
            <tr>
                <td valign="middle">
                    <asp:TextBox ID="txtAmount" Enabled="false" runat="server" Text='<%# Bind("PayeeAmount")%>'
                        CssClass="black_normal" Width="180px" Wrap="true" TextMode="SingleLine" MaxLength="20"
                        ValidationGroup="GSave"></asp:TextBox>
                    <ajaxToolkit:FilteredTextBoxExtender ID="fltrDescriptionPayeeDeductionmount" runat="server"
                        FilterType="Custom" FilterMode="InvalidChars" InvalidChars="'abcdefghijklmnopqrstuvwxyz@!#$%^&*%<> ,"
                        TargetControlID="txtPayeeDeductionAmount">
                    </ajaxToolkit:FilteredTextBoxExtender>
                </td>
            </tr>
        </table>
    </EditItemTemplate>
    <ItemStyle Width="10%" />
</asp:TemplateField>

计算此值grossamount - deductionamount =减去金额。

此减法金额列不在数据库中。如何在网格视图列中自定义列和显示数据?

3 个答案:

答案 0 :(得分:1)

您可以使用查询并创建一个包含所需数据的列并将其绑定到网格。

您可以创建模板字段,如下所示

<asp:TemplateField ItemStyle-Width="13%" HeaderStyle-HorizontalAlign="Left">
   <HeaderTemplate>
         Amount
   </HeaderTemplate>
   <ItemTemplate>
    <asp:Label ID="lblAmount" runat="server" 
         Text='<%# Int32.Parse(Eval("grossamount").ToString())-Int32.Parse(Eval("deductionamount").ToString())%>'>
    </asp:Label>
</ItemTemplate>

如果您的数据为Int32或根据需要投放到其他类型。

答案 1 :(得分:1)

<script type="text/javascript">
    function Calculation(TWD, AWD, THD, TTL, TOTALHOLIDAYS) {
        var TWD = $(document.getElementById(TWD)).html();
        var AWD = $(document.getElementById(AWD)).val();
        var THD =$( document.getElementById(THD)).val();
        var TotalHolidays = TOTALHOLIDAYS;

        var TotalTakenLeave = (parseInt( TWD) + parseInt(TotalHolidays)) - (parseInt(THD) +parseInt( AWD))

        $('#' + TTL).html( TotalTakenLeave);
    }
</script>

答案 2 :(得分:0)

<script type="text/javascript">
function Calculation(TWD, AWD, THD, TTL, TOTALHOLIDAYS) {
    var TWD = $(document.getElementById(TWD)).html();
    var AWD = $(document.getElementById(AWD)).val();
    var THD =$( document.getElementById(THD)).val();
    var TotalHolidays = TOTALHOLIDAYS;

    var TotalTakenLeave = (parseInt( TWD) + parseInt(TotalHolidays)) - (parseInt(THD) +parseInt( AWD))

    $('#' + TTL).html( TotalTakenLeave);
}