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 :
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 :
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) :
row.Attributes.Add("onclick", "Select(" + (row.RowIndex + 1) + ");DisplayRow(" + batch.BatchNumber + "," + (row.RowIndex + 1) + ");");
Une idée de WTF il peut bien se passer ?
Partager