Ottieni tutti gli elementi dalla lista di selezione html usando ASP.net C #

Ho il seguente elenco di selezione:

 Context1 Context2 Context3 Context4 Context5  

Sto usando javascript per spostare gli elementi di questo elenco di selezione su e giù (funziona). Vorrei alimentare l’ordine risultante in ASP.net usando C #.

Se utilizzo la seguente riga di codice, ottengo solo l’elemento selezionato, come ottengo l’intera lista?

  string items = Request.Form["Context"]; 

Puoi ottenere tutti gli articoli come questo.

 var ddlArray= new Array(); var ddl = document.getElementById('Context'); for (i = 0; i < ddl.options.length; i++) { ddlArray[i] = ddl .options[i].value; } 

Ora passa questo array JavaScript al tuo codice.

Una risposta è modificare la select per renderla un ListBox e quindi accedervi programmaticamente sul server:

  Context1 Context2 Context3 Context4 Context5  

Notare che l’ho rinominato lstContext come chiamandolo Context causerà errori di compilazione (a causa della condivisione di un nome con l’object Context esistente).

Quindi, nel codice, per accedere ai valori nell’ordine in cui appaiono:

 for (int i = 0; i < lstContext.Items.Count; i++) { string item = lstContext.Items[i].Value; // Do something with it } 

Il tuo javascript dovrebbe funzionare su ListBox come fa per la select , quindi questo dovrebbe rimanere inalterato.

creare un campo nascosto (runat = server) e memorizzare le mescolate nel campo nascosto; È ansible accedere al contenuto del campo nascosto sul lato server tramite string itemsOrderedChanged = Request.Form[];

prova a passare il valore JavaScript in un campo nascosto come questo.

 var hidden=document.getElementById('hidValue'); var string strValues=""; for(var i=0i 

E nell'evento page_load o what_ever ottieni questa stringa e la dividi.

 protected HtmlControls.HtmlInputHidden hidValue; protected void Page_Load(object sender, System.EventArgs e) { dynamic hiddenValue = hidValue.Value; string [] arr=hiddenValue.Split(","); }