2011-06-28 3 views
1

J'ai une boîte de dialogue Jquery, qui s'ouvre en cliquant sur un lien. Ce clic remplit la boîte de dialogue en utilisant AJAX. Une des choses que je dois faire est de le peupler avec une image basée sur l'ID revenant des données retournées par la méthode AJAX. Les images dans l'utilisation du site et ImageHandler pour afficher des images comme ceci:JQuery - définir une image src sur le bouton cliquez sur

~/ImageHandlerDefault.ashx?id=1467 

Cela fonctionne très bien, mais est-il un moyen que je peux définir une image en utilisant la méthode Web AJAX ou est-il besoin d'un postback?

J'ai essayé de coder en dur une valeur mais cela n'a pas fonctionné:

$('.openwoimage').attr('src', '~/ImageHandlerDefault.ashx?id=1467'); 

je peux changer le alt etc, mais le src est Nto de travail.

Quelqu'un a-t-il des conseils ou une meilleure façon de le faire?

grâce

+1

le préfixe '~' est uniquement compris côté serveur, pas côté client. Vous devez résoudre le nom du chemin du script (client) pour comprendre où se trouve ce chemin. (Essayez de regarder dans [HttpRuntime.AppDomainAppVirtualPath] (http://msdn.microsoft.com/en-us/library/system.web.httpruntime.appdomainappvirtualpath.aspx) ou 'ResolveUrl') –

+0

Êtes-vous en mesure d'obtenir cela URL sur votre propre? Notez que cela est évalué côté client, pas côté serveur. – joeslice

+0

très bon point que vous avez là, oui il est seulement reconnu par le serveur, donc ce que j'ai fait est utilisé ResolveURL qui fonctionne très bien: $ ('. Openwoimage'). Attr ('src', '<% = ResolveUrl ("~/ImageHandlerDefault.ashx? Id = '+ item.ImageId +'")%> '); – Funky

Répondre

1
$('.openwoimage').attr({ 
    src: '<%=ResolveUrl("~/ImageHandlerDefault.ashx?id=1467")%>' 
}); 

Utilisez ResolveUrl pour obtenir la version "client" du chemin de la version du serveur.

+0

c'est ma réponse! – Funky

+0

@Funky: J'y suis arrivé quelques secondes avant votre commentaire. ;-) –

+0

haha, tu m'as eu là !! – Funky

Questions connexes