Bonjour,
Alors voilà j'ai une div qui change d'id en fonction de la ligne en cours d'une grille. "Affiché" comme ceci :
<div id="<%# Eval("refart") %>" style="display: none; position: relative">
Le clique sur une imagebutton de ma grille parent me permet d'ouvrir la grille enfant en fonction de Eval("refart") récupérer de la grille parent.
Je change le display de ma div lors du clique sur l'imagebutton de ma grille parent avec un code javascript :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<script language="JavaScript" type="text/javascript">
var currentlyOpenedDiv = "";
function CollapseExpand(object) {
var div = document.getElementById(object);
if (currentlyOpenedDiv != "" && currentlyOpenedDiv != div) {
currentlyOpenedDiv.style.display = "none";
}
if (div.style.display == "none") {
div.style.display = "inline";
currentlyOpenedDiv = div;
}
else {
div.style.display = "none";
}
}
</script> |
Et le code de l’évènement RowDataBound :
1 2 3 4 5 6 7 8 9
|
If e.Row.RowType = DataControlRowType.DataRow Then
Dim STR_CodArticle As String = e.Row.Cells(1).Text
Dim O_ As Object = e.Row.Cells(6).Controls(1)
Dim IMG_Nomenclature As Image = DirectCast(O_, Image)
IMG_Nomenclature.Attributes.Add("onclick", "javascript:CollapseExpand('" & STR_CodArticle & "')")
End If |
Le problème est que l'imagebutton utilise un rowcommand pour lancer la procédure qui va peupler ma grille enfant. Et bien sur ce rowcommand va lancer un postback. Et lors de ce postback cela va réinitialiser ma div pour la remettre en display : "none" .
Ma question est donc comment garder l'état de ma div en cours sachant que son id change en fonction de la ligne de la grille parent après un postback.
Merci d'avance Je sèche totalement
Partager