在DataGrid中有两列,一列为金额,一列为CHECKBOX(也就是是否选中)
我要在JS中写代码。如果选中了则在文本框里写入金额。如:(1表示选中)     checkbox        money
        1             42
        1             30
        2             20在文本框里显示的应为72

解决方案 »

  1.   

    可以参考一个这个
    http://community.csdn.net/Expert/topic/4309/4309523.xml?temp=5.094546E-02
      

  2.   

    csdn.aspx<%@ Page language="c#" Codebehind="csdn.aspx.cs" AutoEventWireup="false" Inherits="Grove.ASPnet.csdn" %>
    <form id="Form1" method="post" runat="server">
            <asp:DataGrid id="DataGrid1" runat="server">
                    <Columns>
                            <asp:TemplateColumn>
                                    <HeaderTemplate>
                                            Checkbox
                                    </HeaderTemplate>
                                    <ItemTemplate>
                                            <asp:CheckBox id="chkSelect" Runat="server"></asp:CheckBox>
                                    </ItemTemplate>
                            </asp:TemplateColumn>
                    </Columns>
            </asp:DataGrid>
            <input type="text" id="SumMoney" value="0">
    </form>
    <script>
    var iTotalMoney = 0;
    function CountMoney(chk, iMoney)
    {
            if (chk.checked)
            {
                    iTotalMoney += iMoney;
            }
            else
            {
                    iTotalMoney -= iMoney;
            }
            document.getElementById("SumMoney").value = iTotalMoney;
    }
    </script>
    csdn.aspx.csusing System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace Grove.ASPnet
    {
            /// <summary>
            /// csdn 的摘要说明。
            /// </summary>
            public class csdn : System.Web.UI.Page
            {
                    protected System.Web.UI.WebControls.DataGrid DataGrid1;
            
                    private void Page_Load(object sender, System.EventArgs e)
                    {
                            ArrayList al = new ArrayList();
                            al.Add("42");
                            al.Add("30");
                            al.Add("20");
                            al.Add("10");
                            al.Add("50");                        DataGrid1.DataSource = al;
                            DataGrid1.DataBind();
                    }                private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) 
                    {
                            if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                            {
                                    CheckBox chk = (CheckBox)e.Item.FindControl("chkSelect");
                                    chk.Attributes.Add("onclick","CountMoney(this, " + e.Item.DataItem +")");
                            }
                    }
                    #region Web 窗体设计器生成的代码
                    override protected void OnInit(EventArgs e)
                    {
                            //
                            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
                            //
                            InitializeComponent();
                            base.OnInit(e);
                    }
                    
                    /// <summary>
                    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
                    /// 此方法的内容。
                    /// </summary>
                    private void InitializeComponent()
                    {    
                            this.DataGrid1.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemCreated);
                            this.Load += new System.EventHandler(this.Page_Load);                }
                    #endregion
            }
    }