ASP.NET: Comment puis-je accéder à une propriété de mon UserControl, de l'intérieur JScript?
J'ai besoin d'un accès en lecture à une propriété définie par l'utilisateur de mon UserControl, à partir de l'intérieur d'un <script>
élément. Ce script doit s'exécuter lorsque l'utilisateur clique sur le lien (que j'ai aussi ne sais pas comment faire pour l'installation). Merci pour vos conseils, DONC!
Code-behind:
public partial class TNLink : System.Web.UI.UserControl
{
[System.ComponentModel.BindableAttribute(true)]
public virtual string TNImageURL { get; set; }
[System.ComponentModel.BindableAttribute(true)]
public virtual string FullImageURL { get; set; }
[System.ComponentModel.BindableAttribute(true)]
public virtual string Caption { get; set; }
}
ASP:
<script type="text/javascript">
//****How do I access the FullImageURL property for this line?****
document.getElementById('imgFull').src = FullImageURL;
</script>
<div style="text-align: center">
<a>
<asp:Image ID="imgTN" runat="server"
ImageUrl='<%# DataBinder.Eval (Page, "TNImageURL") %>'
style="border: 5px solid #000000; width: 85%;" /><br />
<asp:Label ID="lblCaption" runat="server"
Text='<%# DataBinder.Eval (Page, "Caption") %>' />
</a>
</div>
OriginalL'auteur Giffyguy | 2009-10-10
Vous devez vous connecter pour publier un commentaire.
Comme Francis a écrit, vous devez écrire la valeur de la propriété à votre sortie html lors de la construction de la page sur le serveur.
C'est probablement la façon la plus simple de le faire avec votre exemple:
(Le
<%= %>
construire est un peu moins pourResponse.Write
.)OriginalL'auteur Jeff Sternal
Votre contrôle utilisateur est en cours d'exécution sur le serveur qui héberge votre application web. Le js est en cours d'exécution dans la machine du client navigateur. Il n'y a aucun moyen pour le js pour interagir avec le contrôle de l'utilisateur.
Cependant, votre de contrôle de l'utilisateur émet des balises html dans le cadre de son exécution. Que html est inclus dans la page de dom pour qui le js a accès. Ainsi, vous pouvez émettre la valeur de la propriété dans le cadre de l'html (par exemple, comme un js déclaration de variable dans une balise). Le meilleur endroit pour le faire, ce serait le contrôle de l'utilisateur .fichier ascx.
OriginalL'auteur Franci Penov
Lors de l'exécution de la page, afficher le code source html (clic droit afficher la source). Vous verrez qu'il n'est pas
<asp>
balises là. Tous sont convertis à<html>
balises.Pour exemple:
<asp:Panel>
est remplacé par<div>
en html. Et si vous voulez accéder au panneau, vous pouvez uniquement accéder à la div avec Javascript.La même chose est également valable pour d'autres commandes de l'utilisateur. Vérifiez l'équivalent html. Et voir ce que vous pouvez. Ou nous fournir le code html de sortie.
OriginalL'auteur JCasso