动态修改显示列表总价

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebApplication1.WebForm3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>动态修改显示列表总价</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <asp:Repeater runat="server" ID="rpt" onitemcreated="rpt_ItemCreated">
        <HeaderTemplate>
            <table border="1">
                <tr>
                    <td>Id</td>
                    <td>Price</td>
                    <td>Number</td>
                    <td>Amount</td>
                </tr>
        </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td><%#Eval("Id")%></td>
                    <td><asp:TextBox ID="tbPrice" runat="server" Text='<%#Eval("Price") %>' AutoPostBack="true"></asp:TextBox></td>
                    <td><asp:TextBox ID="tbNumber" runat="server" Text='<%#Eval("Number")%>' AutoPostBack="true"></asp:TextBox></td>
                    <td><asp:Label ID="lbAmount" runat="server" Text='<%#Eval("Amount")%>'></asp:Label></td>
                </tr>
            </ItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
        </asp:Repeater>
    </div>
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class WebForm3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Bind();
            }
        }

        public void Bind()
        {
            List<Txts> list = new List<Txts>()
            {
                new Txts{ Id=1, Price=2m,Number=3.5m,Amount=5.5m}
            };

            rpt.DataSource = list;
            rpt.DataBind();
        }

        public struct Txts
        {
            public int Id { get; set; }
            public decimal Price { get; set; }
            public decimal Number { get; set; }
            public decimal Amount { get; set; }
        }

        protected void rpt_ItemCreated(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) return;

            if (e.Item.FindControl("tbPrice") == null || e.Item.FindControl("tbNumber") == null) return;

            TextBox tbPrice = e.Item.FindControl("tbPrice") as TextBox;
            TextBox tbNumber = e.Item.FindControl("tbNumber") as TextBox;
            tbPrice.TextChanged += tbPrice_TextChanged;
            tbNumber.TextChanged += tbNumber_TextChanged;
        }

        public void tbPrice_TextChanged(object sender, EventArgs e)
        {
            TextBox tbPrice = sender as TextBox;
            RepeaterItem rptPrice = (RepeaterItem)tbPrice.Parent;
            TextBox tbNumber = rptPrice.FindControl("tbNumber") as TextBox;
            Label lbAmount = rptPrice.FindControl("lbAmount") as Label;

            lbAmount.Text = (Convert.ToDecimal(tbPrice.Text.Trim()) * Convert.ToDecimal(tbNumber.Text.Trim())).ToString();
        }

        public void tbNumber_TextChanged(object sender, EventArgs e)
        {
            TextBox tbNumber = sender as TextBox;
            RepeaterItem rptNumber = (RepeaterItem)tbNumber.Parent;
            TextBox tbPrice = rptNumber.FindControl("tbPrice") as TextBox;
            Label lbAmount = rptNumber.FindControl("lbAmount") as Label;

            lbAmount.Text = (Convert.ToDecimal(tbPrice.Text.Trim()) * Convert.ToDecimal(tbNumber.Text.Trim())).ToString();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值