2009-06-23 10 views
3

Ceci est mon code DataList, je définis une table dans headertemplate et la ferme dans footerTemplate.Création d'une table dans Datalist

Le problème est avec AlternatingItemStyle et ItemStyle qu'ils n'ont aucun effet.

Si je déplace la défenition de la table à l'intérieur <ItemTemplate> cela fonctionne.

<asp:DataList ID="DataList1" runat="server" DataKeyField="ProductID" 
      DataSourceID="ObjectDataSource1" EnableViewState="False" 
      onitemdatabound="DataList1_ItemDataBound" Width="474px"> 
      <AlternatingItemStyle CssClass="AlternatingRowStyle" /> 
      <ItemStyle CssClass="RowStyle" />    


    <HeaderTemplate> 
     <table cellspacing="0" cellpadding="0"> 
    </HeaderTemplate> 
    <ItemTemplate>   
     <div id="Comment"> 

      <tr> 
       <div id="Data1"> 
       <td> 
        <asp:CheckBox ID="CheckBox1" runat="server" /> 
       </td> 
       <td> 
        <asp:CheckBox ID="CheckBox2" runat="server" /> 
       </td> 
       <td> 
        <asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("CategoryName") %>' />               
        </td> 
       </div>           
      </tr> 
      <tr> 
       <td></td> 
       <td></td>           
       <td> 
        <asp:Label ID="CategoryNameLabel" runat="server" Text="dfgfdgdg" />      
       </td>      
      </tr>                   
     </div>   
    </ItemTemplate> 

    <FooterTemplate> </table></FooterTemplate> 
</asp:DataList> 
+0

Je ne suis pas vraiment le problème. Essayez-vous de faire fonctionner AlternatingItemStyle et ItemStyle, mais ils ne le sont pas? –

+0

oui, ils ne fonctionnent pas quand la table est à l'intérieur headertemplate –

+0

si

est à l'intérieur de itemtemplate cela fonctionne. –

Répondre

3

Lupital, je me souviens bien, le contrôle DataList va générer les balises de table pour vous, vous n'avez pas besoin de les spécifier dans l'en-tête et pied de page.

Par exemple:

<asp:DataList id="ItemsList" 
     BorderColor="black" 
     CellPadding="0" 
     CellSpacing="0" 
     RepeatDirection="Vertical" 
     RepeatLayout="Table" 
     BorderWidth="0" 
     runat="server"> 

Cela devrait accomplir ce que vous cherchez à faire avec la configuration des propriétés de table « extérieur » de la table des éléments.

Espérons que cela devrait résoudre votre problème de style alternatif.

+0

oui, mais je ne veux pas sur ma page d'avoir beaucoup de tables (table pour chaque élément) –

+0

Le code ci-dessus devrait générer une table externe, et chaque ligne sera votre modèle d'élément. D'après ce que je me souviens, il va générer un TR/TD autour de chaque modèle d'élément. –

Questions connexes