lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009
-
27 juin 2008 à 11:09
lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009
-
27 juin 2008 à 11:41
Bonjour
à tous, alors voila mon souci.
J'ai une page HTML qui contient 3 frames chaque frame contient une page aspx.
Dans une de mes pages aspx j'ai un GridView qui m'affiche certaine infos. Parmis ces infos j'ai un Link bouton qui lorsque je click dessus me permet
d'executer du code behind C# pour charger un second GridView dans la même frame et par la même occasion
d'affecter une URL à ma 2eme frame via une fonction javascript.
Ma fonction javascript :
// Normalement elle
doit prendre
dynamiquement en argument l'ID du LinkButton
// lorsque je click dessus sur ce derniers.
function affecterURL(ltext)
{
Dans l'itemTemplate de mon GridView voila les propriétés ce qu'il y a dans mon LinkButton
'
CommandArgument='<%# (DataBinder.Eval(Container.DataItem, "NLot")).ToString().Trim() %>'
CommandName="chargerLot"
title='<%# (DataBinder.Eval(Container.DataItem, "NLot")).ToString().Trim() %>'
OnClientClick="tranRight(' ID DE MON LINKBUTTON ');" >
Et dans mon code C# pas grand chose puisque je vais juste charger un second GridView en interceptant le commandName, pas la peine de s'attarder la dessus car mon probleme ce situe au niveau de OnClientClick.
Comment pourais-je concatener dans mon code aspx ma fonction javascript et l'ID de mon LinkButton.
Voila ce que j'ai essayer de faire :
1) j'ai enlever le OnclickClient de ma page aspx pour faire au niveau de mon code C# une méthode qui ajoute l'attribut OnClientClick a mon Link en la concatenant ma fonction javascript avec l'ID du LinkButton comme tel :
linkButton.Attributes.Add("OnClientClick", "tranRight('" + linkButton.Text.Trim() + "');");
Résultat : ma fontion javascript n'ai pas exécuter !
2) J'ai bidouiller au niveau de ma page aspx pour pouvoir concatener ma fonction JS et l'ID au niveau de l'attribut OnClienClick :
A chaque fois j'ai une erreur lors de l'éxécution : La balise serveur n'est pas correcte. ou bienLes balises serveur ne peuvent pas contenir des constructions <% ... %>.
3) Le pire c'est que si je met en dûr un ID comme paramettre de ma fonction JS comme ça :
OnClientClick ="tranRight('ID0001');"
Et bien ça marche !!!!!! ma fonction JS + C# sont exécuter : ma 2eme frame est actualiser et mon 2eme grid est a son tour lui aussi charger ....
4) En dernier recours, j'ai fait un response.Write de ma fonction JS lors de l'execution de mon codeBehind: ça marche mais lorsque le JS est injecter et bien ça me foux en l'air mon design dans ma page aspx ... !!!
Voila, je pense avoir donner le max de detail, j'espere que l'un d'entre vous aura une petite idée ...
lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009 27 juin 2008 à 11:41
Je viens de trouver une solution !!!
En fait dans ma fonction javascript je ne passe plus en paramétre la valeur que je reccupere de mon Bind
mais j'envoi l'ID du LinkButton qui appel la fonction JS et tout le travail se situe desormais au niveau de ma fonction JavaScript
,
il ne me reste plus qu'a recuperer le text afficher dans mon LinkButton
pour le passer en parametre.
Voila plus en detail :
function tranRight(ltext)
{
var s = document.getElementById(ltext).title;
window.parent.frames(2).location.href='InfoLotFacturation.aspx?NLot='+ s +'';
}