2011-10-28 4 views
0

J'ai une fonction javascript ci-dessous pour passer de la boîte multiple A qui est remplie de la base de données à une autre boîte de sélection multiple B, en cas de postback mes valeurs dans B qui sont déplacées de A s'est perdu. Au début, je pensais parce que j'ai inclus un "runat =" serveur "" tag pour les actions côté serveur, mais apparemment ce n'est pas le cas. Je lis à propos de Form.Request mais je n'ai pas la moindre idée de la façon de procéder. J'ai juste besoin de conserver ces valeurs dans plusieurs boîte de sélection B. S'il vous plaît veuillez donner des conseils. Merci.Conserver les valeurs dans une boîte de sélection multiple

<% - Déplacer des éléments çà et là sélectionnez boîte -%>

function move(sourceFrom, sourceTo) { 
    var arrFrom = new Array(); 
    var arrTo = new Array(); 
    var arrLU = new Array(); 
    var i; 
    for (i = 0; i < sourceTo.options.length; i++) { 
     arrLU[sourceTo.options[i].text] = sourceTo.options[i].value; 
     arrTo[i] = sourceTo.options[i].text; 
    } 
    var fLength = 0; 
    var tLength = arrTo.length; 
    for (i = 0; i < sourceFrom.options.length; i++) { 
     arrLU[sourceFrom.options[i].text] = sourceFrom.options[i].value; 
     if (sourceFrom.options[i].selected && sourceFrom.options[i].value != "") { 
      arrTo[tLength] = sourceFrom.options[i].text; 
      tLength++; 
     } else { 
      arrFrom[fLength] = sourceFrom.options[i].text; 
      fLength++; 
     } 
    } 

    sourceFrom.length = 0; 
    sourceTo.length = 0; 

    var ii; 
    for (ii = 0; ii < arrFrom.length; ii++) { 
     var no = new Option(); 
     no.value = arrLU[arrFrom[ii]]; 
     no.text = arrFrom[ii]; 
     sourceFrom[ii] = no; 
    } 

    for (ii = 0; ii < arrTo.length; ii++) { 
     var no = new Option(); 
     no.value = arrLU[arrTo[ii]]; 
     no.text = arrTo[ii]; 
     sourceTo[ii] = no; 
    } 

    (sourceTo).focus(); 

    if (sourceTo == (document.getElementById('<%= outletFromBox.ClientID%>'))) { 
     (sourceFrom).focus(); 
    } 
    if (sourceTo == (document.getElementById('<%= QualMemTypeFromBox.ClientID %>'))) { 
     (sourceFrom).focus(); 
    } 
    if (sourceTo == (document.getElementById('MemStatusFromBox'))) { 
     (sourceFrom).focus(); 
    } 
} 
<select multiple size="8" style="width: 135px" runat="server" onblur="selectAll(this, true, document.getElementById('<%#uilblDestinationQualOutlet.ClientID%>'))" 
             id="outletToBox"> 
            </select> 

Répondre

0

changements côté client à un ListBox ne sont pas conservées côté serveur, de sorte que toutes les modifications apportées seront perdues si un postback se produit; consultez ce lien pour voir comment vous pouvez gérer:

http://www.vijaykodali.com/Blog/post/2007/12/14/Add-Delete-Items-in-DropDownList2c-ListBox-using-Javascript.aspx

Si vous éprouvez des difficultés à travailler avec cette solution laissez-moi savoir, et publiez votre code page ASPX ... nous pouvons mettre en place une solution pour votre cas exact.

Questions connexes