2010-02-26 6 views
0

$ .get ("CallBack.aspx", {nm: EtatTx, nm2: ÉtatTx2}, fonction (données) { $ .each (data, function() { $ ('[ id $ = DropDown1] '). append ("" + this [' prmv '] + ""); }); });Jquery DropDownlist article non défini İE 8

iE 8 alt text http://img26.imageshack.us/img26/1500/51868080.jpg

Mozilla Firefox alt text http://img35.imageshack.us/img35/3707/mozillav.jpg

mon problème IE8 dernier élément non défini. comment réparer?

Amain cm2 = new Amain(); 
       DataTable dt = cm2.Getdt(str, str3); 
       StringBuilder sb = new StringBuilder(); 
       sb.Append("["); 
       foreach (DataRow item in dt.Rows) 
       { 
        sb.Append("{"); 
        sb.Append("\"prmv\":\""); 
        sb.Append(item[0].ToString()); 
        sb.Append("\"" + "},"); 
       } 

       sb.Append("]"); 

       Context.Response.ContentType = "application/json"; 
       Context.Response.ContentEncoding = Encoding.UTF8; 
       Context.Response.Write(sb.ToString()); 
       Context.Response.End(); 

Répondre

1

Cela peut arriver à cause de la façon dont IE gère les tableaux Javascript. Dans IE,

var a = [1, 2, 3, 4,]; 

a cinq éléments, dont le dernier est indéfini. Dans Firefox, la dernière virgule est ignorée, donc la liste comporte quatre éléments.

Jetez un oeil sur les données exactes que votre Callback.aspx retourne.

Mise à jour: Votre code de rappel provoque ce problème sur la ligne:

   sb.Append("\"" + "},"); 

Cela produit un tableau comme:

[{"prmv":"1"},{"prmv":"2"},{"prmv":"3"},{"prmv":"4"},] 
                ^extra comma 

Il y a une virgule supplémentaire avant la ] du retour tableau. Une façon de résoudre ce problème est peut-être à:

sb.Remove(sb.Length-1, 1); // remove extra trailing comma 
sb.Append("]"); 

Ce correctif fonctionne pour IE et Firefox (et tous les autres navigateurs).

+0

Données Dinamic Greg – Chicharito

+0

@oraclee: Oui, mais votre 'Callback.aspx' est peut-être en train de formater des données de manière à inclure une virgule de fin dans le tableau. Peut-être pourriez-vous poster le code de 'Callback.aspx' si ce n'est pas trop long. –

+0

ok ajouter callback.aspx code – Chicharito