getElementById renvoie null mais la liste est remplie. Des suppositions de ce qui ne va pas?js getelementbyid renvoie la valeur null
HomePage.aspx et Map.js
var Center = { lat: 20.452425, lng: -68.545446 };
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 3,
center: Center
});
populateMap()
function populateMap()
{
var DiveSiteList2 = document.getElementById("DiveSiteList")
for (var i = 0; i < DiveSiteList2.options.length; ++i)
{...}
}
}
<div id="ListHolder">
<asp:ListBox class="ListBox" ID="DiveSiteList" runat="server"></asp:ListBox>
</div>
HomePage.aspx.cs
private DiveManager.DiveManager Manager;
protected void Page_Load(object sender, EventArgs e)
{
Manager = new DiveManager.DiveManager();
BindDiveList();
}
private void BindDiveList()
{
foreach (DiveSite DS in Manager.MasterDiveSiteList)
{
ListItem Item = new ListItem();
Item.Text = DS.DiveSiteName;
Item.Attributes.Add("Name", DS.DiveSiteName);
Item.Attributes.Add("Latitude", DS.Latitude.ToString());
Item.Attributes.Add("Longitude", DS.Longitude.ToString());
Item.Attributes.Add("ID", DS.DiveSiteID.ToString());
DiveSiteList.Items.Add(Item);
}
}
Erreur de page: Uncaught TypeError: Impossible de lire la propriété 'options' de null à populateMap (Map.js: 19)
Il n'y a probablement aucun élément à cet identifiant, ce qui est la raison pour laquelle 'getElementById' retourne' null' (il échoue en silence). –
Je ne suis pas un gars ASP, mais vous devriez ajouter un tag asp.net ou asp.net-mvc à cela. D'une lecture naïve de cela, il n'est pas clair que la page HTML contiendrait en fait quelque chose avec l'ID DiveSiteList, juste un tas d'IDs sur le DS.DiveSiteID. –
avez-vous essayé d'utiliser 'id' au lieu de' ID' (c'est-à-dire en minuscules). Votre JS est-il également enveloppé dans une attente en attente? De même, vous utilisez 'var DiveSiteList2' mais plus tard' DiveSiteList' .. est-ce une faute de frappe? – haxxxton