2009-06-02 3 views
0

Dans une application Web ASP.NET, j'essaie de créer et de remplir une UL en fonction de l'entrée de l'utilisateur. Ce n'est pas un remplissage rapide. L'utilisateur entre deux lettres, clique sur un bouton et le serveur renvoie tous les enregistrements comme l'entrée. S'il y a plus d'un match, une UL est créée montrant toutes les correspondances.jQuery avec ASP.NET - Comment créer, remplir et afficher UL

J'ai essayé d'adapter ce code à partir d'un plugin. Je peux passer au travers avec le débogueur et tout semble OK, mais l'UL n'est pas générée dans le document ou elle est invisible.

Voici le code simplifié:

function fillBusinessDropdown(ListOfBusinesses) { 

var results = document.createElement("div"); 
var $results = $(results); 
$results.hide().addClass("ac_results").css("position", "absolute"); 

if ($.browser.msie) { 
    $results.append(document.createElement('iframe')); 
} 

results.appendChild(businessToDom(ListOfBusinesses)); 

$results.css({ 
width: 400 + "px", 
top: 100 + "px", 
left: 150 + "px" 
}).show(); 


function businessToDom(ListOfBusinesses) { 

    var ul = document.createElement("ul"); 

    var iLen = ListOfBusinesses.length - 1 

    for (var i = 0; i <= iLen; i++) { 
    var row = ListOfBusinesses[i]; 
    if (!row) continue; 
     var li = document.createElement("li"); 

    // add the business name 

    li.innerHTML = row.Bu_name; 

// add the business ID 
li.selectValue = row.Bupk; 
var extra = null; 
if (row.length > 1) { 
    extra = []; 
    for (var j = 1; j < row.length; j++) { 
    extra[extra.length] = row[j]; 
    } 
} 
li.extra = extra; 
ul.appendChild(li); 

$(li).hover(
    function() { $("li", ul).removeClass("ac_over");  
      $(this).addClass("ac_over"); active = $("li", ul).indexOf($(this).get(0)); }, 
    function() { $(this).removeClass("ac_over"); } 
    ).click(function(e) { e.preventDefault(); e.stopPropagation(); selectItem(this) }); 
    } 
    return ul; 
} 

Je suis perplexe. Est-ce que any0oe a des idées où je me suis trompé? Merci Mike Thomas

Répondre

0

Vous ne savez pas quel est le problème avec ce code, mais vous utilisez un mélange de javascript et de Jquery. Je suggère d'utiliser JQuery tout le temps à la place. Utilisez .appendTo() etc

Questions connexes