2011-11-03 12 views
6

Sto tentando di creare un attributo personalizzato per ogni elemento di elenco in un controllo di selezione HTML database.Impostazione di un attributo personalizzato su un elemento di elenco in un controllo di selezione HTML (.NET/C#)

L'output HTML risultante dovrebbe essere simile a questo:

<select> 
<option value="1" data-value="myValue1">item</option> 
<option value="2" data-value="myValue2">item</option> 
<option value="3" data-value="myValue3">item</option> 
</select> 

Ho provato ad aggiungere attributi come questo, ma non sono in fase di rendering:

<select id="selectList" class="multiselect" multiple="true" name="selectList[]" runat="server"></select> 


ListItemCollection values = new ListItemCollection(); 

ListItem test = new ListItem("add"); 
test.Attributes.Add("data-value", "myValue"); 

values.Add(test); 

this.selectList.DataSource = values; 
this.selectList.DataBind(); 

Qualche idea su come raggiungere questo obiettivo? Grazie!

risposta

11

È necessario aggiungere attributi agli elementi dell'elenco di controllo. L'associazione dei dati al controllo elenco può solo impostare il nome & testo. Così modo più semplice è quello di aggiungere elementi manualmente invece di associazione dati - ad esempio:

ListItem test = new ListItem("text1", "value1"); 
test.Attributes.Add("data-value", "myValue1"); 
applicationList.Items.Add(test); 

Se è necessario utilizzare associazione dati poi si deve gestire DataBound evento e poi iterare voci di elenco del controllo e aggiungere/set l'attributo richiesto. Francamente, ho scoperto che questo è un modo circolare per fare le cose.

+0

Fantastico, grazie Vinay. Non mi è venuto in mente di rinunciare al data-binding e invece di aggiungere elementi direttamente. :) – kirkyoder

Problemi correlati