asp.net
  • javascript
  • listview
  • checkbox
  • onchange
  • 2009-09-24 37 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

    相關問題