Bonjour,
Je pense que j’ai un souci de compréhension du cycle de mes pages et je serai heureux de comprendre ce que je manque et d’en apprendre encore un peu plus sur cette notion essentielle.
Voici le contexte et mon souci : nous travaillons sur une application Web en vb.net dans laquelle la plupart des écrans sont des contrôles utilisateurs chargés dans une masterpage.
Dans l’uc me posant un problème j’ai un modalpopupexetender ouvrant un panel sur le click d’un bouton. Jusque-là rien d’inquiétant.
Dans ce panel se trouve une GridView dont le click sur une ligne déclenche la fermeture de la modalPopup et un script javascipt qui enregistre la clé de la ligne cliquée dans un Hiddenfield et ouvre une autre popup (aspx cette fois) qui elle déclenche à sa fermeture un postback de la page initiale.
Mon problème est de récupérer la clé de la ligne de la gridview qui a été cliquée, dans le code Behind, lors de ce dernier postback et là je coince !
Lors de l’exécution du javascript, le hiddenfield est bien rempli, mais une fois dans le code behind, il n’y a plus rien dedans.
Remarque : Suite à plusieurs recherche sur le net, j’ai tenté d’utiliser un textbox en « display :none », après avoir lu qu’ils n’avaient pas le même comportement vis-à-vis des modifications effectuées du côté client, mais le résultat est identique.
En espérant avoir été assez précis et compréhensible pour obtenir votre aide, voici quelques extraits de mon code :
Dans l’ascx
Dans l’ascx.vb
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <AjaxToolkit:ModalPopupExtender runat="server" ID="mpeLiaisonSalle" PopupControlID="pnlLiaisonSalle" TargetControlID="lnkbtnLiaisonSalle" CancelControlID="lnkbtnRetourLiaisonSalle" BackgroundCssClass="modal_background" /> <asp:HiddenField ID="hfSalleALier" runat="server" EnableViewState="true" />
D'avance merci de vos commentaires et de votre aide.
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 Ajout du javascript permettant denregistrer la clé de la ligne cliquée de la gridview dans le HiddenField « hfSalleALier » Protected Sub gvListeSalles_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvListeSalles.RowDataBound If (e.Row.RowType = DataControlRowType.DataRow) Then e.Row.Attributes.Add("onclick", String.Format("javascript:document.getElementById('{0}').Value = {1};", hfSalleALier.ClientID, CType(e.Row.DataItem, DayPilot.Web.Ui.Resource).Value)) End If End Sub Gestion de lévènement click du bouton ouvrant la modalPopup Private Sub ibtnAjouterMateriel_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles ibtnAjouterMateriel.Click Dim script As String = String.Empty script &= "popupPageRechercheRessource(800, 600, 'RechercheRessources', '" & hfNouvelleRessource.ClientID & "', '', '" & lnkValiderAjoutRessource.UniqueID & "',0,'','" & Ressource.ETypeRessource.Materiel & "'); return false; " mpeLiaisonSalle.OnOkScript = script mpeLiaisonSalle.OkControlID = "gvListeSalles" ChargerListeSalles() pnlLiaisonSalle.Visible = True mpeLiaisonSalle.Show() End Sub
Partager