2009-09-24 9 views
1

Dans un contrôle ASP: ListView, j'ai une case à cocher pour chaque ligne. Chaque ligne représente un produit avec un prix correspondant. Je souhaite que le client sélectionne un ou plusieurs produits et calcule le prix total client.asp.net case à cocher dans listview appelant le code javascript onchange

Jusqu'à présent, je l'ai utilisé le code suivant, mais il ne fonctionne pas:

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

J'ai une fonction javascript changeTotal (referer, valeur) qui doit déterminer si le produit vient d'être sélectionné et ajouter/soustraire le prix du produit d'un total.

Le PROBLÈME est l'affectation de fonction javascript dans la définition CheckBox - quel est le problème avec cette approche? Pourquoi ne puis-je pas attribuer un prix statique pour la fonction javascript? Lorsque je supprime la partie <%# Eval("Price")) %> de la case à cocher, le code compile sans erreurs.

Répondre

1

Modifiez vos guillemets dans l'unchange en guillemets simples.

+0

En fait, je pensais que j'avais essayé, mais cela supprime l'erreur du compilateur. Mais le code client résultant semble faux. Je reçois la fonction javascript attachée à un avec la case à cocher à l'intérieur, et le <% # Eval ("Price")%> n'a pas été évalué. Comment devrais-je formuler mes propriétés checkbox? – Chau

+1

Voici une façon, peu hacky, mais bon ... http://www.michaelteper.com/archive/2009/03/03/add-client-side-change-handler-to-asp.net-checkbox -control.aspx – Paddy

+0

Salut Paddy, je vais essayer la solution dans votre lien. Merci pour vos efforts :) – Chau

-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

Qu'est-ce que cela signifie? – Chau

Questions connexes