2009-06-13 11 views
0

Utilisation de ASP.Net 2.0Comment ouvrir une fenêtre contextuelle dans ASP.Net avec contrôle HyperLink en utilisant un fichier javascript externe?

a. Sur une page ASPX parent, après avoir cliqué sur un contrôle HyperLink, j'ai besoin d'ouvrir une page (enfant) dans une fenêtre contextuelle, comme modale.

b. Ensuite, lorsque cette fenêtre contextuelle (page enfant) est fermée, je dois récupérer les sélections d'une grille de données dans cette fenêtre contextuelle et actualiser la page parent en conséquence.

c. J'ai ouvert la fenêtre code javascript dans un fichier javascript.js, que je chargeais comme ceci:

protected void Page_Load(object sender, EventArgs e) 
{ 
    ClientScript.RegisterClientScriptInclude(this.GetType(), "manualequipentryscript", "javascript.js"); 
    lnkSearchProducts.Attributes.Add("onclick", "LaunchProductSearch();"); 
} 

..isn't travail ..

Comment puis-je mettre en œuvre cela?

(j'ai cherché www pour les 2 dernières heures et est venu avec tant de résultats en ont pas été en mesure d'obtenir quelque chose de concret qui me aider.)

Cordialement, Bob

+1

Peut-être devriez-vous clarifier pourquoi le code "ne fonctionne pas". Quelle erreur obtenez-vous? – Cerebrus

+0

Que voulez-vous dire par "ne fonctionne pas"? Est-ce qu'il génère une erreur? Si oui, est-ce quand la page est chargée ou quand le bouton est cliqué? Veuillez fournir un balisage qui est envoyé au client. –

Répondre

1

Le La première chose à comprendre est que les navigateurs ne permettent généralement pas de véritables fenêtres contextuelles modales (à l'exception notable de IE). Les navigateurs basés sur Mozilla vous permettent de spécifier qu'une fenêtre restera devant, mais cela ne peut pas être considéré comme modal. This article se développe sur cette actualité.

La solution de contournement habituelle consiste à afficher une boîte de dialogue modale dans un DIV au lieu d'une autre fenêtre. Deuxièmement, pour transmettre des valeurs d'une fenêtre contextuelle à la fenêtre parente, vous pouvez utiliser des méthodes Javascript ou du code côté serveur. La première méthode impliquerait d'abord d'accéder à la fenêtre parent (en utilisant la propriété window.opener), puis d'extraire des références aux éléments de cette fenêtre parent. Voir this article pour un exemple. La méthode côté serveur requiert que vous conserviez les valeurs d'état, puis que vous forcez une actualisation Javascript de la fenêtre parent (en utilisant window.opener.location.reload();) pour permettre le chargement de ces valeurs.

Enfin, le code que vous avez présenté semble me convenir. Dites-nous le message d'erreur que vous obtenez ... qui peut fournir un indice.