J'ai un ModalPopupExtender qui permet à un client d'appliquer des informations de paiement. Cela a fonctionné très bien. Ensuite, le client a demandé à voir le total dû sur le ModalPopup. Cela ne semblait pas très compliqué de prendre le total dû au contrôle parent et de le passer dans le contrôle ModalPopup. Il semble qu'il n'y a pas de moyen facile de le faire.Transférer des données dans un ModalPopupExtender
Voici mon code HTML, garder à l'esprit ce code est enveloppé dans un UpdatePanel
<asp:LinkButton ID="lnkMakePayment" runat="server" Visible="true" OnClick="lnkMakePayment_Click" >
<asp:Label ID="lblMakePayment" runat="server" Text="Make Payment"/></asp:LinkButton>
<asp:Button ID="btnDummy" style="display: none;" runat="server"
OnClick="btnDummy_Click" />
<ajaxToolkit:ModalPopupExtender ID="mdlPopupPayment" runat="server"
TargetControlID="btnDummy" PopupControlID="pnlMakePayment"
CancelControlID="popUpCancel" DropShadow="true" BackgroundCssClass="modalBackground">
</ajaxToolkit:ModalPopupExtender>
<asp:Panel ID="pnlMakePayment" runat="server" Style="display: none;"
SkinID="PopUpPanel" class="ContentBoxColor" Width="400px" Height="170px">
<MP1:MakePaymentPopup ID="MakePayment" runat="server" />
<div style="text-align: right; width: 100%; margin-top: 5px;">
<asp:Button ID="popUpCancel" runat="server" Text="Cancel" Width="0px" />
</div>
</asp:Panel>
Maintenant, voici le codebehind
protected void btnDummy_Click(object sender, EventArgs e) { }
protected void lnkMakePayment_Click(object sender, EventArgs e)
{
mdlPopupPayment.Show();
}
Ainsi, lorsque l'utilisateur clique sur le lien de paiement de faire la ModalPopup fonctionne bien. Et il déclenche même un événement que le contrôle parent écoute pour appliquer les informations de paiement et tous les détails de paiement associés que l'utilisateur remplit dans la fenêtre contextuelle. Encore une fois tout cela fonctionne bien.
Ma première tentative d'envoi du total dû à la ModalPopup se présente comme suit:
protected void lnkMakePayment_Click(object sender, EventArgs e)
{
// MakePayment is the actual ModalPopup control and total due is a public property
MakePayment.TotalDue = txtTotalDue.Text
mdlPopupPayment.Show();
}
Le problème est que lorsque je clique sur le lien pour afficher le ModalPopup l'événement PageLoad ne se déclenche pas si je aucun moyen d'attribuer ma propriété à une étiquette dans le ModalPopup. J'ai même essayé d'utiliser l'objet session mais j'avais le même problème. Je ne peux même pas faire un voyage à la base de données parce que je ne peux pas passer un identifiant client. Des idées? Je suis un novice en Javascript et je préfère un côté serveur mais à ce stade je suis prêt à tout essayer.
Le contrôle utilisateur MakePayment contient 3 zones de texte ASP. Un pour l'utilisateur pour entrer un montant de paiement, un autre pour le type de paiement, et un troisième pour les notes comme les numéros de chèques. Également sur le contrôle, il y a un bouton Appliquer et Annuler. Le contrôle parent est une page ascx de base qui est un écran d'entrée de données contenant ModalPopupExtender et tout le code html pour l'activer.
désolé si j'étais pas clair, j'ai ajouté un peu plus d'informations sur la question –