Bonjour tout le monde,

Je m'arrache les cheveux depuis 2 bonnes heures et là je ne comprends pas bien ce qu'il se passe...

J'ai 2 gridView. La première possède une colonne de checkBox et lorsqu'elle est (dé)coché je veux rendre (in)visibles certaines lignes de la seconde.

Le cochage se fait lui aussi en javascript et il fonctionne très bien :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
    function Select(rowIndex) {
        var grid = document.getElementById("<%= gvBatches.ClientID %>");
        var cell;
        if (grid.rows.length > 0) {
            cell = grid.rows[rowIndex].cells[0];
            //Find the checkbox
            for (j = 0; j < cell.childNodes.length; j++) {
                if (cell.childNodes[j].type == "checkbox") {
                    cell.childNodes[j].checked = !cell.childNodes[j].checked;
                }
            }
        }
    }
Alors que le reste ne fonctionne pas du tout :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    function DisplayRow(BatchNumber, batchSelected) {
        var grid = document.getElementById("<%= gvProductsPerBatches.ClientID %>");
        var batchChecked = document.getElementById("<%= gvBatches.ClientID %>").rows[batchSelected].cells[0];
        var cell;
        if (grid.rows.length > 0) {
            for (i = 1; i < grid.rows.length; i++) {
                cell = grid.rows[i].cells[1];
                for (j = 0; j < cell.childNodes.length; j++) {
                    if (cell.childNodes[j].type == "label" && cell.childNodes[j].innerText == BatchNumber) {
                        for (k = 0; k < batchChecked.childNodes.length; k++) {
                            if (batchChecked.childNodes[k].type == "checkbox") {
                                grid.rows[i].style.display = batchChecked.childNodes[k].checked ? 'block' : 'none';
                            }                            
                        }                        
                    }
                }
            }
        }
    }
Pour déclencher les fonctions ça se passe au dataBind de la première grille (row étant la ligne en train de se charger bien sûr) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
row.Attributes.Add("onclick", "Select(" + (row.RowIndex + 1) + ");DisplayRow(" + batch.BatchNumber + "," + (row.RowIndex + 1) + ");");
Une idée de WTF il peut bien se passer ?