Ho usato una
datalist agganciata ad un objectDataSource per visualizzare un'elenco di
pulsanti cliccabili per avere la liberta' di usare un diverso template grafico
fra item selezionato e item non selezionato.
Il tutto
funziona pero' solo se si allinea a mano la selezione dell'item stesso.
In pratica non
e' sufficiente fare:
<asp:DataList ID="dlCultura"
runat="server"
DataKeyField="cl_codice_iso"
DataSourceID="odsCultura"
RepeatDirection="Horizontal" GridLines="none" CssClass="ListaLingua" CellSpacing="10">
<ItemTemplate>
<asp:LinkButton ID="lkLingua" runat="server" CommandName="select" CausesValidation="false"
Text='<%# Eval("cl_descrizione") %>' ></asp:LinkButton>
</ItemTemplate>
<SelectedItemTemplate>
<asp:LinkButton ID="lkLingua"
runat="server"
CommandName="select"
CausesValidation="false"
CssClass="select"
Text='<%# Eval("cl_descrizione") %>' ></asp:LinkButton>
</SelectedItemTemplate>
</asp:DataList>
Ma bisogna
fare in modo che nel codice si allinei il valore selezionato e si rilanci il
databind, in caso contrario non si allinea correttamente e l'item selezionato
non cambia la grafica:
Protected Sub dlCultura_ItemCommand(ByVal
source As Object,
ByVal e As
System.Web.UI.WebControls.DataListCommandEventArgs) Handles
dlCultura.ItemCommand
' Set the
SelectedIndex property to select an item in the DataList.
dlCultura.SelectedIndex =
e.Item.ItemIndex
' Rebind the
data source to the DataList to refresh the control.
dlCultura.DataBind()
End Sub