Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C#] Modificare css in base al numero di record trovati

    Salve a tutti,

    su alcune pagine del mio futuro sito c'è un menu interno generato da una listview.

    Esempio:

    codice:
    <div id='menu'>
    
    listview che genera le voci prendendole dal database
    
    </div>
    Quello che vorrei ottenere è questo:

    SE i record trovati sono solo 1, la div menu deve sparire (display = none)
    SE sono più di uno non cambia nulla.

    Non essendo molto pratico di C#, come potrei scrivere questo codice nel file.cs?

    Grazie,
    M.

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    codice:
    
    <div id="menu" runat="server">
    ...listview Items
    </div>
    

    se il count delle righe della Listview è = 1:

    codice:
    this.menu.Style.Add("display", "none");

  3. #3
    Ciao djciko, grazie della risposta.

    Ma come lo traduco in C# "se il count delle righe della Listview è = 1"?
    Mi scriveresti tutta la classe per favore?

    Grazie 1000,
    M.

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Immediatamente dopo l'operazione che popola il listview:

    codice:
    if (IDListView.Items.Count == 1) // IDListView è l'ID della ListView !
    {
      this.menu.Style.Add("display","none");
    }

    oppure se la sorgente del ListView è ad esempio un DataTable che chiamiamo dtList,

    codice:
    if (dtList.Rows.Count == 1) 
    {
      this.menu.Style.Add("display","none");
    }
    Ultima modifica di djciko; 13-12-2013 a 17:45

  5. #5
    Dunque,
    c'è un problema di fondo:
    sia la div menu che la listview sono contenuti dentro <ItemTemplate> di un'altra listview:

    codice:
    <listview principale>
    
    <ItemTemplate>
    
    <div menu che ci interessa>
    listview che ci interessa
    </div>
    </ItemTemplate>
    <listview principale>
    il compilatore dice che i nomi della div e della listview non sono definiti da nessuna parte, allora ho provato ad utilizzare il "HtmlGenericControlFindControl" per trovare la div menu e "web control find control" per trovare la listview, ma senza risultato.

    Ho provato a cercare un altro elemento html non annidato nella listview, e il "find control" questa volta lo trova.

    Qual'è la formula per cercare sia un webcontrol e un htmlgenericcontrol contenuti dentro ItemTemplate?

    Grazie,
    M.

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    nell'evento _rowdatabound della listview principale devi recuperare la riga corrente e recuperare:

    - il div "menu" con una FindControl sulla riga (mettendolo in un HTMLGenericControl oppure un HTMLContainerControl)

    - la seconda lista con una FindControl sul div.

    per il recupero della riga cerca su internet, ora non posso postare tutto il codice...
    Ultima modifica di djciko; 16-12-2013 a 13:53

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.