listview中的asp.net复选框调用javascript代码onchange

listview中的asp.net复选框调用javascript代码onchange,asp.net,javascript,listview,checkbox,onchange,Asp.net,Javascript,Listview,Checkbox,Onchange,在ASP:ListView控件中,每行都有一个复选框。每一行代表一种产品及其相应的价格。我希望客户选择一个或多个产品并计算客户端的总价格 到目前为止,我使用了以下代码,但它不起作用: <asp:CheckBox ID="CheckBox" runat="server" Text="" Checked='<%# Convert.ToBoolean(Eval("Selected")) %>'

在ASP:ListView控件中,每行都有一个复选框。每一行代表一种产品及其相应的价格。我希望客户选择一个或多个产品并计算客户端的总价格

到目前为止,我使用了以下代码,但它不起作用:

<asp:CheckBox ID="CheckBox" 
              runat="server" 
              Text="" 
              Checked='<%# Convert.ToBoolean(Eval("Selected")) %>'
              onchange="changeTotal(this, <%# Eval("Price")) %>)"
/>

我有一个javascript函数changeTotal(referer,value),它应该确定产品是否刚刚被选中,并从总数中加/减产品价格


问题是复选框定义中的javascript函数赋值-这种方法有什么错?为什么我不能为javascript函数指定一个静态价格?当我从复选框中删除
部分时,代码编译时不会出错。

将onchange中的双引号更改为单引号。


<script language="javascript" type="text/javascript">
 function validatecheckbox(mode)
 {
 //alert('mode' + mode);
 //mode : 1  From : chkdeRegister
 //mode : 2  From : chkcancel
  var chkdeRegister = document.getElementById ("<%=chkdeRegister.ClientID%>"); 
  var chkcancel = document.getElementById("<%=chkcancel.ClientID%>");

  //alert('chkdeRegister: ' + chkdeRegister.checked);
  //alert('chkcancel: ' + chkcancel.checked);
  if(mode==1)
  {
    if(chkdeRegister.checked)
     {
      chkcancel.checked=false;
     }
  }
  else
  {
   if(chkcancel.checked)
     {
      chkdeRegister.checked=false;
     }
  }
 }
</script>
函数validatecheckbox(模式) { //警报(“模式”+模式); //模式:1 From:chkdeRegister //模式:2 From:chkcancel var chkdeRegister=document.getElementById(“”); var chkcancel=document.getElementById(“”); //警报('chkdeRegister:'+chkdeRegister.checked); //警报('chkcancel:'+chkcancel.checked); 如果(模式==1) { 如果(chkdeRegister.checked) { chkcancel.checked=假; } } 其他的 { 如果(chkcancel.已选中) { chkdeRegister.checked=false; } } }
实际上我以为我已经尝试过了,但它确实消除了编译器错误。但由此产生的客户端代码似乎是错误的。我将javascript函数附加到一个带有复选框的函数,但该函数尚未计算。我应该如何表达我的复选框属性?这里有一种方法,有点不对劲,但是嘿。。。嗨,帕迪,我会在你的链接中尝试解决方案。感谢您的努力:)