2008-12-08 8 views

Répondre

4

Hey, j'ai trouvé réponse. Il est comme suit:

function checkBoxselectedornot() 
{ 

     var frm=document.forms['aspnetForm']; 
     var flag=false; 
     for(var i=0;i<document.forms[0].length;i++) 
     { 
      if(document.forms[0].elements[i].id.indexOf('chkDownloadSelectedEvent')!=-1) 
      { 
       if(document.forms[0].elements[i].checked) 
       { 
         flag=true 
       } 
      } 
     } 
     if (flag==true) 
     { 
     return true 
     }else 
     { 
     alert('Please select at least one Event.') 
     return false 
     } 

} 
2
if(document.getElementById('checkBoxId').checked) { 
    //checked 
} else { 
    //not checked 
} 

modifier: si vous voulez vérifier toutes les cases d'un formulaire, vous pouvez faire une boucle à travers la collection:

var inputs = document.getElementById('formId').getElementsByTagName('input'); 
var isChecked = false 
for(var i = 0; i < inputs.length; i++) { 
    if(inputs[i].type == 'checkbox' && inputs[i].checked) { 
     isChecked = true; 
    } 
} 

if(isChecked) { 
    //at least one checkbox checked 
} 
+1

thanx, mais les cases à cocher sont dans le modèle de l'article gridview. il n'est donc pas accessible car gridview est converti en format table en html. –

2

côté serveur:

// dans votre bouton événement clic:

bool flag = false;

for (int i = 0; i < gridview1.rows.count; i ++)

{
if (checkbox1.checked)

flag = true; 

}

if (drapeau)

{

// moi ans atleast une case à cocher est cochée

}

+0

Merci pour votre réponse. Buty je dois le faire avec un script Java. –

1

Vous devrez ajouter un peu de Javascript personnalisé à votre page pour l'alerte côté client à afficher. Voici une méthode que j'ai écrit qui fonctionne avec un GridView appelé « GridView1 » (cela devrait être le nom par défaut si vous venez de glisser le contrôle sur votre page ASPX):

<script type="text/javascript"> 
    function ClientCheck() { 
     var valid = false; 
     var gv = document.getElementById("GridView1"); 

     for (var i = 0; i < gv.all.length; i++) { 
      var node = gv.all[i]; 
      if (node != null && node.type == "checkbox" && node.checked) { 
       valid = true; 
       break; 
      } 
     } 
     if (!valid) { 
      alert("Invalid. Please select a checkbox to continue."); 
     } 

     return valid; 
    } 
</script> 

Vous pouvez voir que définit une variable au contrôle GridView pour commencer, puis itère sur tous les enfants d'une boucle for. Si l'enfant est un checkbox et qu'il est checked, nous définissons la variable valid sur true. Si nous arrivons à la fin de l'itération et qu'aucune case cochée n'est trouvée, alors valid reste faux et nous exécutons l'alerte.

Pour lier ceci à votre GridView sur votre page ASPX, commencez par créer une colonne TemplateField et entourez le LinkButton avec votre code côté client. Si vous avez utilisé le concepteur pour configurer vos colonnes, vous pouvez utiliser le lien "Convertir ce champ en champ TemplateField" dans l'éditeur de colonnes. Voici un exemple de la source que vous vous retrouverez avec:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1"> 
    <Columns> 
     <asp:TemplateField HeaderText="Button Field" ShowHeader="False"> 
      <ItemTemplate> 
       <span onclick="return ClientCheck();"> 
        <asp:LinkButton ID="LinkButton1" runat="server" CommandName="IDClick" Text='<%# Eval("YourDataSourceItem") %>'></asp:LinkButton> 
       </span> 
      </ItemTemplate> 
     </asp:TemplateField> 
     // ...your remaining columns... 

Utilisation du TemplateField nous permet d'ajouter un code côté client que nous aimons. Ici, nous ajoutons un span et en utilisant onclick pour appeler notre méthode ClientCheck.

Si vous n'êtes pas préoccupé par l'alerte, vous pouvez atteindre vos objectifs en utilisant un contrôle CustomValidator, qui s'exécute côté serveur.

J'espère que cela aide.

0
<script type="text/javascript" language="javascript"> 
     function CheckboxSelect() { 

      var LIntCtr; 
      var LIntSelectedCheckBoxes = 0; 

      for (LIntCtr = 0; LIntCtr < document.forms[0].elements.length; LIntCtr++) { 
       if ((document.forms[0].elements[LIntCtr].type == 'checkbox') && (document.forms[0].elements[LIntCtr].name.indexOf('chkID') > -1)) { 
        if (document.forms[0].elements[LIntCtr].checked == true) { 
         LIntSelectedCheckBoxes = parseInt(LIntSelectedCheckBoxes) + 1; 
        } 
       } 
      } 
      if (parseInt(LIntSelectedCheckBoxes) == 0) { 
       alert('User(s) Must Be Selected For operation !'); 
       return false; 
      } 
     } 
    </script> 
3
protected void OnCheckedChanged(object sender, EventArgs e) 
     { 
      bool flag = false; 

      foreach (GridViewRow row in Grid_InvoiceGarden.Rows) 
      { 
       CheckBox chkItem = (CheckBox)row.FindControl("chkSelect"); 
       if (chkItem.Checked) 
        flag = true; 
      } 
      if (flag == true) 
      { 
       btnUpdate.Visible = true; 
      } 
      else 
      { 
       btnUpdate.Visible = false; 
      }  
     } 
Questions connexes