Avatar billede websam Nybegynder
06. februar 2006 - 13:22 Der er 16 kommentarer og
1 løsning

Lave table ?

Hejsa,

Jeg skal have lavet en table der kan smide nogle oplysninger i 3 kolonner noget i stil med dette :

kolonne 1    kolonne 2    kolonne 3
tekst        tekst        tekst
tekst        tekst        tekst
tekst        tekst        tekst
tekst        tekst        tekst
tekst        tekst       
tekst        tekst       

til det har jeg forstillet mig noget i stil med at kunne bruge :

For i = 0 to 23

Next

Men jeg kan ikke helt finde løsningen så er der en der kan hjælpe med dette ?

Ps. jeg ved godt at man kan gøre det med et datagrid men det er bare ikke nok i dette tilfælde.

/Websam
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 13:23 #1
i codebehind kan du lave en tabel og evt tilføje den til en placeholder på siden.
Avatar billede websam Nybegynder
06. februar 2006 - 13:27 #2
alt det har jeg styr på men jeg skal tabbelen set udfra at jeg har 24 timer på et døgn 00:00, 01:00, 02:00 osv. men disse skal deles op i 3 kolloner i tabbelen og dette skal jeg have gjort med For i = 0 to 23 da dette er den jeg bruger til at udskrive mine timer med ?

/Websam
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 13:32 #3
her er et simpelt eksempel:
Dim t As Table =  New Table()
        Dim i As Integer
        For  i = 0 To  3- 1  Step  i + 1
            Dim tr As TableRow =  New TableRow()
            Dim tc As TableCell =  New TableCell()
            tc.Text = "test"+i.ToString()
            tr.Cells.Add(tc)
            t.Rows.Add(tr)

        Next
Avatar billede websam Nybegynder
06. februar 2006 - 13:51 #4
Jeg er helt til snøsen i dag nu kan jeg ikke få det vist i en placeholder kan du ikke lige vise mig det ?

/Websam
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 13:57 #5
tilføj dette til din aspx side
<asp:PlaceHolder ID="plc" runat="server" Visible="true">
    </asp:PlaceHolder>

for at få den  vist i en placeholder skal du bruge:
plc.Controls.Add(t)
Avatar billede websam Nybegynder
06. februar 2006 - 14:17 #6
ok men det er stadigt ikke det jeg vil. Med denne :

Dim t As Table = New Table
        Dim i As Integer
        For i = 0 To 23 Step i + 1
            Dim tr As TableRow = New TableRow
            Dim tc As TableCell = New TableCell
            tc.Text = i.ToString() & ":00"
            tr.Cells.Add(tc)
            t.Rows.Add(tr)
        Next
        plc_Table.Controls.Add(t)

Får jeg en lang smørre :

0:00
1:00
2:00
3:00
4:00
5:00
6:00
7:00
8:00
9:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00

men meningen er at det skal være således her det skal stå :

00:00    08:00    16:00
01:00    09:00    17:00
02:00    10:00    18:00
03:00    11:00    19:00
04:00    12:00    20:00
05:00    13:00    21:00
06:00    14:00    22:00
07:00    15:00    23:00

Altså 3 kolonner der hvori de 24 timer indeles automatisk.

/Websam
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 14:22 #7
prøv med
Dim t As Table = New Table
        Dim i As Integer
        For i = 0 To 7 Step i + 1
            Dim tr As TableRow = New TableRow
            Dim tc As TableCell = New TableCell
            tc.Text = i.ToString() & ":00"
            tr.Cells.Add(tc)
            Dim tc1 As TableCell = New TableCell
            tc1.Text = (i+8).ToString() & ":00"
            tr.Cells.Add(tc1)
            Dim tc2 As TableCell = New TableCell
            tc2.Text = (i+16).ToString() & ":00"
            tr.Cells.Add(tc2)
            t.Rows.Add(tr)
        Next
        plc_Table.Controls.Add(t)
Avatar billede websam Nybegynder
06. februar 2006 - 14:27 #8
Ja det kan jeg godt følge dig i men når jeg så skal lave den samme indeling i antal dage i enmåned så er jeg på den for der har jeg ikke noget fast antal dage da der jo er 28,29,30 og 31 dage pr. måned så derfor skal det være automatisk at den bare laver tre kolonner og smidder timerne ind indtil der ikke er flere.

/Websam
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 14:55 #9
du kan gøre det med en datalist:

i codebehind:

Function CreateDataSource() As ICollection

        Dim dt As DataTable
        Dim dr As DataRow
        Dim i As Integer

        dt = New DataTable
        dt.Columns.Add(New DataColumn("StringValue", GetType(String)))

        For i = 0 To 23
            dr = dt.NewRow()
            dr(0) = "Test" & i.ToString()
            dt.Rows.Add(dr)
        Next


        CreateDataSource = New DataView(dt)

    End Function

    Sub Page_Load(sender As Object, e As EventArgs)
        If Not IsPostBack Then
            DataList1.DataSource = CreateDataSource()
            DataList1.DataBind
        End If
    End Sub
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 14:55 #10
<asp:DataList ID="DataList1" GridLines="Both" runat="server" RepeatColumns="3" RepeatDirection="Vertical" TabIndex="3">
    <HeaderTemplate>
                Items
              </HeaderTemplate>
              <ItemTemplate>
                <%# DataBinder.Eval(Container.DataItem, "StringValue") %>
              </ItemTemplate>
    </asp:DataList>
Avatar billede websam Nybegynder
06. februar 2006 - 15:56 #11
Se det var en helt anden snak. Så skal jeg have lagt nogle hits ind som jeg finder i databasen ved hjælp af en function jeg kalder med dette :

objHour.FindHourHits(timen jeg leder efter)

således at jeg får en visninge der minder om dette :

Time          Hits  Time          Hits  Time          Hits
00:00 - 01:00  12    08:00 - 09:00  12    16:00 - 17:00  12
01:00 - 02:00  15    09:00 - 10:00  12    17:00 - 18:00  12 
02:00 - 03:00  31    10:00 - 11:00  12    18:00 - 19:00  12 
03:00 - 04:00  24    11:00 - 12:00  12    19:00 - 20:00  12 
04:00 - 05:00  54    12:00 - 13:00  12    20:00 - 21:00  12 
05:00 - 06:00  23    13:00 - 14:00  12    21:00 - 22:00  12 
06:00 - 07:00  19    14:00 - 15:00  12    22:00 - 23:00  12 
07:00 - 08:00  10    15:00 - 16:00  12    23:00 - 24:00  12
Avatar billede websam Nybegynder
06. februar 2006 - 15:57 #12
Jeg har det her ind til nu :

Function CreateDataSource() As ICollection

        Dim dt As DataTable
        Dim dr As DataRow
        Dim i As Integer

        dt = New DataTable
        dt.Columns.Add(New DataColumn("StringValue", GetType(String)))

        For i = 0 To 23
            dr = dt.NewRow()
            dr(0) = objFunc.SetStringDate(Convert.ToString(i)) & ":00 - " & objFunc.SetStringDate(Convert.ToString(i + 1)) & ":00"
            dt.Rows.Add(dr)
        Next


        CreateDataSource = New DataView(dt)

    End Function

<asp:DataList ID="DataList1" GridLines="Both" runat="server" RepeatColumns="3" RepeatDirection="Vertical"
                TabIndex="3" Width="550px" Font-Names="Verdana" Font-Size="8pt">
                <HeaderTemplate>
                    <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="0">
                        <TR>
                            <TD>Time</TD>
                            <TD>Hits</TD>
                            <TD>Time</TD>
                            <TD>Hits</TD>
                            <TD>Time</TD>
                            <TD>Hits</TD>
                        </TR>
                    </TABLE>
                </HeaderTemplate>
                <ItemTemplate>
                    <%# DataBinder.Eval(Container.DataItem, "StringValue") %>
                </ItemTemplate>
            </asp:DataList>
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 15:59 #13
Bruger du asp.net 2.0 ?
Avatar billede websam Nybegynder
06. februar 2006 - 16:02 #14
Nej ikke endnu jeg har så meget om ørene for tiden så jeg har ikke haft tiden til at komme igang med det endnu, hva da ?

/Websam
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 16:04 #15
så kunne du bare have brugt en sql datasource.

Hvis du henter et dataset udfra databasen med de informationer der skal bruges og sætter det som datasource.
kan du ændre din itemtemplate til
<ItemTemplate>
                    <%# DataBinder.Eval(Container.DataItem, "Time") %><br />
                    <%# DataBinder.Eval(Container.DataItem, "Hits") %>
                </ItemTemplate>
Avatar billede websam Nybegynder
07. februar 2006 - 10:12 #16
Så fik jeg det til at virke så smid et svar ;o)

/Websam
Avatar billede dr_chaos Nybegynder
07. februar 2006 - 10:18 #17
svar :)
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