2011-06-17 3 views
0

J'ai un listview et je veux changer son style pour afficher: none sur l'événement pageload. Je ne veux pas mettre visible = false car je veux que l'élément soit disponible pour le code javascript côté client. J'essaye celui-ci mais sans chance. La div est rendue et est visible.ajouter display.none à un listview sur page_load

CategoriesDataList.Style.Add(HtmlTextWriterStyle.Display,"none"); 

Le html est:

<asp:ListView ID="CategoriesDataList" runat="server" DataSourceID="SqlCategories" 
    OnItemDataBound="CategoriesDataList_Databound" ItemPlaceholderID="categoriesPlaceh"> 
    <LayoutTemplate> 
     <div id="questionnaire"> ... 
      <asp:PlaceHolder ID="categoriesPlaceh" runat="server"></asp:PlaceHolder> 
     ...</div> 
    </LayoutTemplate> 
    <ItemTemplate> ... 

Répondre

0

ok je l'ai fait en ajoutant un runat = « serveur » à la div dans la LayoutTemplate puis en utilisant FindControl dans le code derrière pour changer son style. J'ai vu que c'était en fait le premier élément qui était rendu et pas un div avec l'identifiant listview comme je m'attendais initialement

0

Pouvez-vous pas seulement ajouter le style="display:none;" à la balise serveur? Cela fonctionne généralement pour moi, les balises de serveur normalement juste convertir les attributs supplémentaires à travers.

<asp:ListView ID="MyListView" runat="Server" style="display:none;" />

+0

Je veux d'abord qu'il soit visible, puis sur button_click recharger la page et la cacher et ensuite utiliser javascript pour l'afficher à nouveau – Leo