Avatar billede lisby Nybegynder
18. januar 2003 - 11:50 Der er 4 kommentarer og
1 løsning

Datalist - output i tabelform

Hej.

Jeg anvender en Datalist, og ønsker 3 kolonner i hver datalistkolonne, for at få output til at se pænt ud med ens venstre marginer. Derfor laver jeg en tabel, hvor indhold skal placeres, men det kan jeg ikke få til at virke, da output blot placeres lige efter hinanden, dvs uden at det vises i tabelform. Indhold fra databasen hentes fint, så det er ikke her problemet ligger, dvs er et rent layoutproblem.

Dvs jeg vil gerne have at hver række med brugernavn, fornavn og efternavn vises i tabelform, således:

Brugernavn1          Fornavn1          Efternavn1
Brugernavn2          Fornavn2          Efternavn2

Istedet for som nu, hvor output vises således:

Brugernavn1 Fornavn1 Efternavn1
Brugernv2 Fornv2 Efternv2
Brugernaaaaaaavn3 Fornaaaavn3 Efternaavn3

Min HTML-del ser således ud:

<HTML>
<body>
    <form runat="server" ID="Form1">
        <h3>Brugertabel</h3>
        <asp:DataList id="DataList1" Runat="server" BorderColor="black" CellPadding="0" Font-Name="Verdana" Font-Size="Smaller" GridLines="Both" Font-Names="Verdana" RepeatColumns="1" RepeatDirection="Horizontal">
        <HeaderTemplate>
            Items
        </HeaderTemplate>          <AlternatingItemStyle                                            BackColor="Gainsboro"></AlternatingItemStyle>
<ItemTemplate>
<table>
<tr>
<td>
<%# DataBinder.EvalContainer.DataItem, "Brugernavn")%>
</td>

<td>
<%# DataBinder.Eval(Container.DataItem, "Fornavn")%>
</td>
                       
<td>
<%# DataBinder.Eval(Container.DataItem, "Efternavn")%>
</td>
</tr>
</table>
</ItemTemplate>

<HeaderStyle BackColor="#AAAADD"></HeaderStyle>
</asp:DataList>
</form>
</body>
</HTML>


Og min Code-behind ser således ud:

Public Class Test
    Inherits System.Web.UI.Page
    Protected WithEvents DataList1 As System.Web.UI.WebControls.DataList

#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
        Dim ds As DataSet = DBbroker.GetBrugerListe
        DataList1.DataSource = ds.Tables(0).DefaultView
        DataList1.DataBind()
    End Sub

End Class

Håber nogen kan hjælpe.
Avatar billede Slettet bruger
19. januar 2003 - 00:48 #1
Din <ItemTemplate> er en separat tabel for hver record, hvilket gør at cellerne kan tilpasse sig indholdet, og det er ikke lige det du ønsker.

Så det bedste er at flytte <table> udenfor din datalist, derefter vil kolonnerne stå som du ønsker.

sådan noget som det her:
<HTML>
<body>
    <form runat="server" ID="Form1">
        <h3>Brugertabel</h3>
<table>
        <asp:DataList id="DataList1" Runat="server" BorderColor="black" CellPadding="0" Font-Name="Verdana" Font-Size="Smaller" GridLines="Both" Font-Names="Verdana" RepeatColumns="1" RepeatDirection="Horizontal">
        <HeaderTemplate>
            Items
        </HeaderTemplate>          <AlternatingItemStyle                                            BackColor="Gainsboro"></AlternatingItemStyle>
<ItemTemplate>
<tr>
<td>
<%# DataBinder.EvalContainer.DataItem, "Brugernavn")%>
</td>

<td>
<%# DataBinder.Eval(Container.DataItem, "Fornavn")%>
</td>
                       
<td>
<%# DataBinder.Eval(Container.DataItem, "Efternavn")%>
</td>
</tr>
</ItemTemplate>

<HeaderStyle BackColor="#AAAADD"></HeaderStyle>
</asp:DataList>
</table>
</form>
</body>
</HTML>
Avatar billede lisby Nybegynder
19. januar 2003 - 13:43 #2
Tak for svaret. Det løser godt nok opgaven med at få data placeret i en tabel, så point er på vej, men jeg mister åbenbart samtidig det smarte layout fra datalisten, hvilket jeg gerne vil beholde. Har du et forslag til det?
Avatar billede Slettet bruger
20. januar 2003 - 12:52 #3
Det vil jeg så lægge direkte på <table> <tr> og <td> tag'ne i stedet for på datalisten.
Avatar billede lisby Nybegynder
20. januar 2003 - 20:59 #4
Ja, det er selvfølgelig en mulighed. Jeg løste det dog på den måde, at jeg anvendte mit eget forslag, men hvor jeg så supplerede med at sætte bredde på hver <td>. Det gav det ønskede layout.
Avatar billede Slettet bruger
21. januar 2003 - 18:33 #5
Ja, så længe der ikke kommer noget data der gør at en af cellerne pludselig bliver bredere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester