日期:2014-05-17  浏览次数:20397 次

Js获取Label中的数据
DataList绑定了很多行数据 简单点说 一行有一个 复选框 和一个Label
Label绑定了数据 点击复选框的时候希望将这个数据传给 DataList外面的一个Label

JScript code

<script type="text/javascript" language="javascript">
    function CheckGoods(form)
    {
        var cb=document.getElementsByTagName("input");
        var lb=document.getElementById("lb_totallMoney"); //将数据传给它
        var lb2=document.getElementById("lb_GoodPrice");  //绑定数据的Label
        for(i=0;i<cb.length;i++)
        {
            if(cb[i].type=="checkbox"&&cb[i].name=='CheckBox1')
            {
                if(cb[i].checked)
                {
                    lb.innerText="123";                   //这样可以 点击复选框后 lb的值会变成 123
                    lb.innerText=lb2.inner.Text;          //这样不行 点击复选框后 lb的值不变
                }
            }
        }
    }
    </script>



<asp:Label ID="lb_GoodPrice" runat="server" Text='<%#Eval("goodsPrice")%>'/>
貌似无法获取到这个绑定数据标签的值。。。。

想了一下 可能是没遍历Label 

JS不太懂,具体应该怎么写,大家帮帮忙

------解决方案--------------------
首先你获取datalist就错了,
应该是var cb=document.getElementById("DataList1").getElementByTaName("Input");
然后你遍历的时候为什么要判断&&cb[i].name=='CheckBox1'呢,去掉这个判断直接判断cb[i].type=="checkbox"再试试。不过我感觉还是有问题。你用alert试试能不能获取lb2的值。
------解决方案--------------------
完整的做法
HTML code
<%@ Page Language="C#" AutoEventWireup="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  protected void Page_Load(object sender, EventArgs e)
  {
    System.Data.DataTable dataTable1 = new System.Data.DataTable("BlogUser");
    System.Data.DataRow dr;
    dataTable1.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
    dataTable1.Columns.Add(new System.Data.DataColumn("UserName", typeof(System.String)));
    dataTable1.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns["UserId"] };

    for (int i = 0; i < 8; i++)
    {
      dr = dataTable1.NewRow();
      dr[0] = i;
      dr[1] = "【孟子E章】" + i.ToString();
      dataTable1.Rows.Add(dr);
    }
    DataList1.DataSource = dataTable1;
    DataList1.DataBind();
  }

  protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
  {
    if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
      CheckBox CheckBox1 = e.Item.FindControl("CheckBox1") as CheckBox;
      Label Label1 = e.Item.FindControl("Label1") as Label;
      CheckBox1.Attributes.Add("onclick", "document.getElementById('" + Label2.ClientID + "').innerHTML=document.getElementById('" + Label1.ClientID + "').innerHTML");
    }
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <title>无标题页</title>
</head>
<body>
  <form id="form1" runat="server">
  <asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound">
    <ItemTemplate>
      <div>
        <asp:CheckBox ID="CheckBox1" runat="server" />
        <asp:Label ID="Label1" runat="server">
  <%#Eval("UserName")%>
        </asp:Label>
      </div>
    </ItemTemplate>
  </asp:DataList>
  <asp:Label ID="Labe