GetElementById retourne null

SafSouf09 Messages postés 2 Date d'inscription vendredi 5 décembre 2008 Statut Membre Dernière intervention 18 mars 2012 - 18 mars 2012 à 02:22
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 21 mars 2012 à 08:30
slt tout le monde.
Je travaille sur un projet SharePoint 2010, j'ai un SPGridView et un fichier *.js qui doit détecter mon contrôle. Mon problème donc est avec getElementById(), qui me retourne null alors que je suis certain d'avoir un ID correspondant dans mon fichier *.ascx... C'est la fonction getElementById("GridViewList1") qui ne marche pas.

voici mon code ascx:


























Ajouter un salarié





et voici le code behind:

public void Forms_handler()
{
SPSite spSite = new SPSite(SPContext.Current.Web.Url);
SPWeb web = spSite.OpenWeb();
SPList ListVacation = web.Lists["Salariés"];
string editForm = String.Concat(web.Url, "/", ListVacation.Forms[PAGETYPE.PAGE_EDITFORM].Url);
string titreModif = "Modifier un salarié";
string mode = "edit";
string scriptfunctionFP = "OpenDialog('" + editForm + "','" + titreModif + "','" + mode + "')";

NewItem.Attributes.Add("onclick", scriptfunctionFP);
}

et enfin le JS:

function OpenDialog(URL, titre, mode) {
if (mode == "edit") {
var div = document.getElementById("GridViewList1"); //get element from specific div
var inputs = document.getElementsByName("saf");
.......
}

Merciiii

3 réponses

SafSouf09 Messages postés 2 Date d'inscription vendredi 5 décembre 2008 Statut Membre Dernière intervention 18 mars 2012
18 mars 2012 à 02:26
svp aidez moi :(
0
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
20 mars 2012 à 15:45
Yop,
Je déplace dans la section ASP.


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
21 mars 2012 à 08:30
Salut,

GridViewList1 est l'ID côté serveur, il est diffère côté client (càd côté Javascript). Deux possibilités :

- ta page ne bougera jamais plus et n'a pas vocation à être encapsulée : alors tu peux lancer ta page, regarder le code source, et récupérer l'ID côté client généré par ton serveur ASP.NET. C'est franchement pas la manière la plus propre, mais ça fonctionne.

- ta page pourrait être réutilisé d'une autre manière, ou simplement tu veux faire les choses proprement : alors tu dois inscrire l'ID côté client depuis le serveur, qui lui le connait. Pour cela tu devras utiliser un code du genre :
Page.ClientScript.RegisterClientScriptBlock(
this.GetType(),
"varGridViewList1",
"var gvl1 = '" + GridViewList1.ClientID + "';",
true);

Dans ton Javascript tu accéderas alors à ton objet avec l'appel suivant :
<script type="text/javascript">
// [..]
var maGridViewList = document.getElementById(gvl1);
// [..]
</script>
0
Rejoignez-nous