2009-05-13 13 views
3

Ich habe zwei Listboxen in asp.net. Mit einem Klick auf eine Schaltfläche möchte ich ein Listenfeld mit den Elementen der ausgewählten Objekte in das andere Feld laden. Das Problem ist, dass dies auf der Client-Seite gemacht werden muss, denn wenn die Schaltfläche angeklickt wird, erlaube ich es nicht zu senden. Ich möchte eine JavaScript-Funktion onselectedindexchange aufrufen, aber das ist Server-Seite. irgendwelche Ideen? Sollte ich klarer sein?Erhalten Sie die ausgewählten Elemente einer Listbox in Javascript

Lösung

enter code here 
function Updatelist() { 
    var sel = document.getElementById('<%=ListBox1.ClientID%>') 
    var lst2 = document.getElementById('<%=ListBox2.ClientId %>') 
    var listLength = sel.options.length; 
    var list2length = lst2.options.length; 
    for (var i = 0; i < listLength; i++) { 
     if (sel.options[i].selected) { 
      //lst2.options.add(sel.options[i].text); 
      lst2.options[list2length] = new Option(sel.options[i].text); 
      list2length++; 
     } 
    } 
} 
+0

Sie hatte die Elemente in Javascript hinzufügen, wenn Sie zu einem SELECT-Element hinzugefügt wurden, mit Simpiler Verfahren aktualisiert, so wird Iterator Linie – TStamper

Antwort

4

Versuchen:

//onclick for button calls this function 
function Updatelist() { 
var sel = document.getElementbyId("list1"); 
var listLength = sel.options.length; 
for(var i=0;i<listLength;i++){ 
    if(sel.options[i].selected) 
    document.getElementById("list2").add(new Option(sel.options[i].value)); 
    }     
+0

nicht benötigt habe ich versucht, dass und etwas Ähnliches. aber 'ich bekomme Objekt unterstützt diese Eigenschaft oder Methode nicht' – Eric

+0

stellen Sie sicher, dass Sie "var" vor Ihren Variablendeklarationen enthalten und nicht benennen Ihre Funktionen gleichen Namen wie eine Ihrer IDs – TStamper

+0

versuchen, den Code in Firefox auszuführen, wenn es funktioniert in forefox, dann ist es wahrscheinlich einer der Gründe, warum ich erwähnt habe, warum es nicht funktioniert in IE – TStamper

0

ist hier ein gutes article, wie diese mit JQuery zu tun.

Sie könnten Ihre Dropdown-Menüs auch in einem Update-Panel anheften.

0
function Updatelist() { 
var sel = document.getElementById('<%=ListBox1.ClientID%>') 
var lst2 = document.getElementById('<%=ListBox2.ClientId %>') 
var listLength = sel.options.length; 
var list2length = lst2.options.length; 
for (var i = 0; i < listLength; i++) { 
    if (sel.options[i].selected) { 
     //lst2.options.add(sel.options[i].text); 
     lst2.options[list2length] = new Option(sel.options[i].text); 
     list2length++; 
    } 
} 

}

1

genauer wir tun können, es mögen;

function selectedVal(list) { 
    alert(list.options[list.selectedIndex].text);     
} 

<select id="listbox" multiple="multiple" 
     style="height: 300px; width: 200px;" 
     onclick="javascript:selectedVal(this);"> 
</select> 
Verwandte Themen