2 votes

Définir le modèle d'en-tête de la liste de données en c# à partir du code arrière

J'ai écrit le code suivant en aspx, et le problème est que je dois créer la même liste de données à partir du code derrière en C# :

<asp:DataList ID="DataList1" runat="server">
    <HeaderTemplate>
        <tr>
            <th style="background-color: Black;">
                <div style="color: White; font-size: medium; padding: 0; margin: 0;">
                    TEST</div>
            </th>
            <th>
                <div style="background-color: #ADAAB1; color: #E3E2E7; padding: 5px; font-size: x-small;">
                    date</div>
            </th>
            <th>
                <div style="background-color: #ADAAB1; color: #E3E2E7; padding: 5px; font-size: x-small;">
                    Buy/Sell</div>
            </th>
            <th>
                <div style="background-color: #ADAAB1; color: #E3E2E7; padding: 5px; font-size: x-small;">
                    Call/Put</div>
            </th>
            <th>
                <div style="background-color: #ADAAB1; color: #E3E2E7; padding: 5px; font-size: x-small;">
                    name</div>
            </th>
            <th>
                <div style="background-color: #ADAAB1; color: #E3E2E7; padding: 5px; font-size: x-small;">
                    amount</div>
            </th>
            <th>
                <div style="background-color: #ADAAB1; color: #E3E2E7; padding: 5px; font-size: x-small;">
                    price1</div>
            </th>
            <th>
                <div style="background-color: #ADAAB1; color: #E3E2E7; padding: 5px; font-size: x-small;">
                    price2</div>
            </th>
        </tr>
    </HeaderTemplate>
    <ItemTemplate>
        <div>
            <tr>
                <td>
                    <div style="background-color: #71B24C; color: White; height: 50px; text-align: center;">
                        <%# Eval("option")%></div>
                </td>
                <td>
                    <div style="background-color: #ADAAB1; color: White; height: 50px; padding-right: 5px;
                        font-size: medium; text-align: center;">
                        <%# Eval("date")%></div>
                </td>
                <td>
                    <div style="background-color: #D9D9D3; padding-right: 5px; height: 50px; font-size: medium;
                        text-align: center;">
                        <%# Eval("type")%></div>
                </td>
                <td>
                    <div style="background-color: #D9D9D3; padding-right: 5px; height: 50px; font-size: medium;
                        text-align: center;">
                        <%# Eval("action")%></div>
                </td>
                <td>
                    <div style="background-color: #D9D9D3; padding-right: 5px; height: 50px; font-size: medium;
                        text-align: center;">
                        <%# Eval("pos_name")%></div>
                </td>
                <td>
                    <div style="background-color: #D9D9D3; padding-right: 5px; height: 50px; font-size: medium;
                        text-align: center;">
                        <%# Eval("amount")%></div>
                </td>
                <td>
                    <div style="background-color: #D9D9D3; padding-right: 5px; height: 50px; font-size: medium;
                        text-align: center;">
                        <%# Eval("unitPrice")%></div>
                </td>
                <td>
                    <div style="background-color: #D9D9D3; padding-right: 5px; height: 50px; font-size: medium;
                        text-align: center;">
                        <%# Eval("total")%></div>
                </td>
            </tr>
        </div>
    </ItemTemplate>
</asp:DataList>

Je veux dire que le code que j'ai démontré fonctionne parfaitement dans la page aspx. J'aimerais obtenir le même effet (afficher la liste de données) mais en utilisant le code derrière. Je veux dire qu'il faut coder dans le code derrière quelque chose comme : DataList = new DataList() ; Mon problème est que je ne sais pas comment travailler avec HeaderTemplate dans le code derrière. Si vous pouvez fournir un exemple de code, ce serait bien !

1voto

tclarkston Points 162

Le HeaderTemplate dans le code derrière doit être de type ITemplate. Veuillez vous reporter à ces articles pour obtenir des informations sur la création d'un modèle.

http://msdn.microsoft.com/en-us/library/system.web.ui.itemplate(v=VS.85).aspx

http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SYSTEM.WEB.UI.WEBCONTROLS.DATALIST.HEADERTEMPLATE);k(HEADERTEMPLATE);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-CSHARP)&rd=true

J'espère qu'ils pourront vous aider.

0voto

Jared Harley Points 4729

Je n'ai pas d'expérience avec les DataLists, mais en examinant la documentation MSDN il semble que ce que vous voulez faire est de lier votre source de données à la DataList dans votre code-behind et ensuite utiliser les contrôles asp sur la page aspx pour afficher les données liées.

Donc, vous voudrez lier vos données à la liste :

using (conn = new SqlConnection(cString)) {
    conn.Open();
    comm = new SqlCommand(selString, conn);
    DataList1.DataSource = comm.ExecuteReader();
    DataList1.DataBind();
    }

puis formatez votre DataList pour charger les données de la source liée comme vous l'avez déjà fait, avec des instructions telles que <%# Eval("date")%> .

MSDN a également une page sur comment créer des contrôles de serveur ASP.NET :

1. Dans le fichier .aspx, insérez un élément dans le contrôle pour identifier le modèle que vous créez, comme dans l'exemple suivant : <asp:DataList id="DataList1" runat="server">   <ItemTemplate>
  </ItemTemplate> </asp:DataList> 2. À l'intérieur de l'élément de modèle, ajoutez du texte HTML et d'autres contrôles comme contenu du modèle. Incluez des valeurs de propriété et de liaison de données pour les contrôles intégrés en utilisant la syntaxe normale, comme dans l'exemple suivant : <asp:DataList id="DataList3" runat="server">   <ItemTemplate>    Name: <asp:Label ID="Label2" runat="server"    Text='<%# DataBinder.Eval(Container, "DataItem.EmployeeName")%>'/>   </ItemTemplate> </asp:DataList> 3. Répétez les étapes 1 et 2 pour chaque modèle que vous souhaitez créer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X