【问题标题】:Display calculate value in new column of grid view在网格视图的新列中显示计算值
【发布时间】:2014-01-31 11:39:23
【问题描述】:

在 asp.net 中使用 gridview, 我正在从数据库的 gridview 中显示数据,但我有 2 列 Grossamount 和 deductionamount

需要传递值和减去的总和 ex:sum(gross)-sum(deduction) = sub amount and also should take based on type if 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= 减去金额。

此扣除金额列不在数据库中。如何自定义列并在网格视图列中显示数据?

【问题讨论】:

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


    【解决方案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 或根据需要转换为其他类型。

    【讨论】:

    • 对不起,我不能在数据库中做任何事情,我需要在网格视图中添加列,如何?
    • @Shekhar:需要 +1 类型转换
    • @naveen 我正在更新我的答案。
    • 嗨,如何显示总和和扣除总和,这两个值都在同一列中,基于类型我现在需要减去值我如何通过“(Eval(“grossamount”).ToString ())-Int32.Parse(Eval("deductionamount").ToString() AS SubtractAmount
    【解决方案2】:
    <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>
    

    【讨论】:

      【解决方案3】:
      <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);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多