Récupérer le Postback d'un ModalPopupExtender
Bonjour,
Quelques lignes pour demander de l'aide sur l'utilisation du ModalPopupExtender d'ajax.
Après multiple recherche, j'ai bien compris qu'il faut utiliser un update panel, mais ça marche pas très bien. Je n'ai pas trouvé de code complet et je galère depuis plusieurs jours dessus.
Voici ma page aspx :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
<head runat="server">
<title></title>
<style>
.modalBackground
{
background-color: #000;
filter: alpha(opacity=70);
opacity: 0.7;
}
.outerPopup
{
background-color: #F5EFE3;
padding: 1em 6px;
}
.innerPopup
{
background-color: #fff;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="SM" runat="server" EnableHistory="false" ScriptMode="Release"
EnablePartialRendering="true" LoadScriptsBeforeUI="true" />
<asp:Button CssClass="btnValid" ID="btnEnregistrer" runat="server" Text="Enregistrer" />
<asp:Panel ID="pnlPopup1" runat="server" CssClass="outerPopup" Style="display: none;">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="pnlInnerPopup1" runat="server" CssClass="innerPopup">
<asp:DropDownList ID="DataList1" runat="server" CssClass="Ctrl" OnSelectedIndexChanged="DataList1_SelectedIndexChanged"
AutoPostBack="True">
</asp:DropDownList>
<asp:Button ID="btnSupprPanType" runat="server" CssClass="btnValid" Text="Supprimer" />
<br />
<br />
<asp:HiddenField ID="hdfIdPanType" runat="server" />
<asp:TextBox ID="txtNomPanierType" runat="server" CssClass="Ctrl">
</asp:TextBox>
<asp:RadioButtonList ID="RdlstLevel" runat="server" CssClass="Ctrl" RepeatDirection="Horizontal">
</asp:RadioButtonList>
<br />
<asp:Button ID="btnValider" runat="server" CssClass="btnValid" Text="Enregistrer" />
<asp:Button CssClass="btnValid" ID="btnAnnuler" runat="server" Text="Annuler" />
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DataList1" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</asp:Panel>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnEnregistrer"
PopupControlID="pnlPopup1" OkControlID="btnValider" CancelControlID="btnAnnuler" BackgroundCssClass="modalBackground" />
</form>
</body> |
et mon aspx.vb
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
Imports System.Data
Partial Class TESTS_ModalPopup
Inherits System.Web.UI.Page
Dim PanType As MOS.DAL.PanierTypeEntete = Nothing
Dim shp As MOS.DAL.Shopper = Nothing
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
shp = New MOS.DAL.Shopper(New Guid("1A05098A-7741-4CD8-894A-00A8F1419714"), True)
If Not Page.IsPostBack Then
'Enregistrement panier type
RemplirLstPanierType()
ChangePanType()
'Remplir les niveaux
If RdlstLevel.Items.Count = 0 Then RemplirLstLevel()
End If
End Sub
''' <summary>
''' Remplir la liste des paniers type
''' </summary>
''' <remarks></remarks>
Private Sub RemplirLstPanierType()
Dim dtv As DataView = shp.GetPanierTypeShopper.Tables(0).DefaultView
Dim MaLigne As DataRow = dtv.AddNew().Row
MaLigne(0) = Guid.Empty
MaLigne(1) = "Nouveau"
dtv.Table.Rows.InsertAt(MaLigne, 0)
DataList1.DataSource = dtv
DataList1.DataValueField = MOS.DAL.PanierTypeEntete.Champs.ID
DataList1.DataTextField = MOS.DAL.PanierTypeEntete.Champs.Libelle
DataList1.SelectedIndex = 0
DataList1.DataBind()
End Sub
Protected Sub DataList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
ChangePanType()
End Sub
Private Sub ChangePanType()
If DataList1.SelectedValue = Guid.Empty.ToString Then
txtNomPanierType.Text = "Cmd type du " & Now
PanType = New MOS.DAL.PanierTypeEntete(Guid.NewGuid, True)
RdlstLevel.SelectedValue = "0"
PanType.DateCreation = Now
hdfIdPanType.Value = PanType.ID.ToString
btnSupprPanType.Visible = False
Else
txtNomPanierType.Text = DataList1.SelectedItem.Text
hdfIdPanType.Value = DataList1.SelectedValue
PanType = CType(Helper.GetObjectFromCache(hdfIdPanType.Value), MOS.DAL.PanierTypeEntete)
If PanType Is Nothing Then PanType = New MOS.DAL.PanierTypeEntete(New Guid(DataList1.SelectedValue), True)
If PanType.IDSite > 0 Then
RdlstLevel.SelectedValue = "2"
ElseIf PanType.IDSociete > 0 Then
RdlstLevel.SelectedValue = "1"
Else
RdlstLevel.SelectedValue = "0"
End If
btnSupprPanType.Visible = True
End If
PanType.DateDerniereUtilisation = Now
PanType.DateModification = Now
Helper.SetObjectToCache(hdfIdPanType.Value, PanType, True, False, False)
End Sub
Private Sub RemplirLstLevel()
RdlstLevel.Items.Add(New ListItem(shp.NomComplet, "0"))
If shp.EstAdminSociete(-1) Then
RdlstLevel.Items.Add(New ListItem(shp.Societe().Libelle, "1"))
ElseIf shp.EstAdminSite(-1) Then
RdlstLevel.Items.Add(New ListItem(shp.Societe().Libelle, "1"))
RdlstLevel.Items.Add(New ListItem(shp.Site().Libelle, "2"))
Else
RdlstLevel.Visible = False
End If
RdlstLevel.DataBind()
End Sub
End Class |
l'utilisation de la liste se déclenche bien.
Mon panel reste visible lors de l'utilisation de la liste mais dès j'y touche les boutons btnValider et btnAnnuler n'ont plus aucun effet. Mon panel reste toujours visible. Par contre si je ne touche pas à la liste, ces boutons fonctionnent bien.
Erreur subsidiaire : quand je fait F5 j'ai une erreur sur un _event à null !!
Quelqu'un pourrait m'aider à corriger mon code, ou donner un exemple qui marche svp
Merci.