asp.net
  • javascript
  • listview
  • checkbox
  • onchange
  • 2009-09-24 45 views 1 likes 
    1

    在ASP:ListView控件中,每行都有一个复选框。每一行代表具有相应价格的产品。我希望客户选择一个或多个产品并计算总价客户端。列表视图中的asp.net复选框调用javascript代码onchange

    到目前为止,我用下面的代码,但它不工作:

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

    我有一个JavaScript函数changeTotal(引荐,值)应确定是否只是选择的产品,并添加/从总价中减去产品价格。

    问题是CheckBox定义中的JavaScript函数赋值 - 这种方法有什么问题?为什么我不能为JavaScript函数分配静态价格?当我从复选框中删除<%# Eval("Price")) %>部分时,代码无错地编译。

    回答

    1

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

    +0

    其实我以为我曾尝试过,但它确实消除了编译器错误。但由此产生的客户端代码似乎不对。我使用内部的复选框将JavaScript函数附加到,并且未评估<%#Eval(“Price”)%>。我应该如何制定我的复选框属性? – Chau 2009-09-24 09:33:25

    +1

    这是一种方法,有点哈克,但嘿... http://www.michaelteper.com/archive/2009/03/03/add-client-side-onchange-handler-to-asp.net-checkbox -control.aspx – Paddy 2009-09-24 10:31:20

    +0

    嗨帕迪,我会尝试在你的链接的解决方案。感谢您的努力:) – Chau 2009-09-24 11:01:02

    -1
    <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> 
    
    +0

    这是什么意思? – Chau 2009-10-20 06:13:32

    相关问题