Toon posts:

[ASP.NET] Repeater probleem in vs.net2003

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem met visual studio.net 2003 nou ja een probleem.
Ik ben op het moment bezig om door middel van een repeater een database uit te lezen en die op het scherm in een tabel te zetten.

Ik heb webmatrix gebruikt en daar werkt onderstaande code prima in maar in vs.net gaat hij moeilijk doen dat hij het tabel einde niet kan vinden of dat hij conflicteerd met header template

Ik weet het ik zou het dus gewoon kunnen doen in webmatrix maar ik heb niet voor niets vs.net natuurlijk en vind het gewoon raar. weet iemand hier iets op?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <asp:Repeater id="Repeater1" runat="server">
            <HeaderTemplate>
      <table border="1">
         <tr bgcolor="#ffcc99">
            <th>ID</th>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Address</th>
         </tr>
   </HeaderTemplate>
   <ItemTemplate>
      <tr bgcolor="#ffcccc">
        <td><%# DataBinder.Eval(Container.DataItem, "au_id") %></td>
        <td><%# DataBinder.Eval(Container.DataItem, "au_fname") %></td>
        <td><%# DataBinder.Eval(Container.DataItem, "au_lname") %></td>
        <td><%# DataBinder.Eval(Container.DataItem, "address") %></td>
      </tr>
   </ItemTemplate>
   <AlternatingItemTemplate>
      <tr bgcolor="#ccff99">
        <td><%# DataBinder.Eval(Container.DataItem, "au_id") %></td>
        <td><%# DataBinder.Eval(Container.DataItem, "au_fname") %></td>
        <td><%# DataBinder.Eval(Container.DataItem, "au_lname") %></td>
        <td><%# DataBinder.Eval(Container.DataItem, "address") %></td>
      </tr>
   </AlternatingItemTemplate>
   <FooterTemplate>
       </table>
   </FooterTemplate>


            </asp:Repeater>
        </form>
    </body>


Als iemand toevallig ook weet of het mogelijk is om tijdens het fillen van de repeater op een bepaald moment een record een ander kleurtje te geven zodat deze er met een rode kleur bijv uit zou springen.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

De asp.Net IDE in VS.Net is en blijft zwaar #$@#$#@. Afaik zijn er geen oplossingen voor; evt. met options dat eea nog wat te corrigeren is.
Maar reken maar niet op intelligente oplossingen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Hij geeft alleen een warning niet een error alleen hij zet na het compileren dan weer niets op het scherm omdat hij vindt dat de tabel niet klopt

hoe kan ik er dan voor zorgen misschien gewoon in vb.net code dat hij in de repeater een tabel aanmaakt variabel met knopjes bijv en verschillende collums?

[ Voor 26% gewijzigd door Verwijderd op 24-07-2003 15:23 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Trouwens, je hebt helemaal geen repeater nodig in dit geval, maar een datagrid, maar dat terzijde.
Als iemand toevallig ook weet of het mogelijk is om tijdens het fillen van de repeater op een bepaald moment een record een ander kleurtje te geven zodat deze er met een rode kleur bijv uit zou springen.
OnItemBound event moet je afvangen en hier wijzigingen in aan (laten) brengen door de itemindex te controleren.

[ Voor 64% gewijzigd door gorgi_19 op 24-07-2003 15:19 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
VS.NET doet hier inderdaad moeilijk over. Maar bij mij geeft hij alleen een warning en geen error. Het werkt dus wel gewoon alleen de editor snapt het niet zo goed.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
Nou mijn probleem is eigenlijk dat ik een datagrid/datalist/repeater moet fillen met data alleen moet er bij een bepaald record bijv als de datum van een record tussen 24-7-2003 & 26-7-2003 ligt dan moet deze volledig rood zijn.
En ik kon niets vinden hoe dat zou moeten met een datagrid. met een repeater was het volgens mij wel mogelijk.
Dat was de voornaamste reden

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 24 July 2003 @ 15:20:
Nou mijn probleem is eigenlijk dat ik een datagrid/datalist/repeater moet fillen met data alleen moet er bij een bepaald record bijv als de datum van een record tussen 24-7-2003 & 26-7-2003 ligt dan moet deze volledig rood zijn.
En ik kon niets vinden hoe dat zou moeten met een datagrid. met een repeater was het volgens mij wel mogelijk.
Dat was de voornaamste reden
Heb je de keuze om een eigen templatecolumn te maken (Itemplate implementeren). Andere optie is om het 'achteraf' te doen, na het binden bij het OnItemBound event en zo een cssclass van de betreffende cell aan te passen.
Nadeel van OnItemBound is dat die niet zo blij is met formatted data in de cellen.

Oftewel: datagrid kan dit ook.

[ Voor 7% gewijzigd door gorgi_19 op 24-07-2003 15:31 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
hmm ik ga google er weer bijnemen en ga verder met dat onitembound event of zelf een template maken zal niet makkelijk worden maar ga het proberen.
Verdere tips zouden welkom zijn *hint ;)

in ieder geval bedankt voor de hulp ben al iets verder

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
   Public Class LabelColumn
        Implements ITemplate
        Private _column As String

        Public Event DataBinding As EventHandler

        Public Sub New(ByVal column As String)
            _column = column
        End Sub

        Public Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
            Dim l As Label = New Label()
            AddHandler l.DataBinding, AddressOf BindData
            container.Controls.Add(l)
        End Sub

        Public Sub BindData(ByVal sender As Object, ByVal e As EventArgs)

            Dim l As Label = CType(sender, Label)
            Dim container As DataGridItem = CType(l.NamingContainer, DataGridItem)
            Dim data As String = CType(container.DataItem, DataRowView)(_column).ToString()
            l.Text = data

        End Sub
End Class

* gorgi_19 snapt de hint... :)

Dit is een voorbeeld voor een labelcolumn. Deze zet letterlijk de datum neer. Aan jou om een start, en einddatum toe te voegen. En zoals je kan zien, werkt deze alleen voor een datagrid.

[ Voor 11% gewijzigd door gorgi_19 op 24-07-2003 15:52 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Mijn kennis hiervan is niet dermate dat ik dit gelijk doorheb, zou je als ik nog brutaler mag zijn ;)
Een beetje hulp erbij kunnen zetten.
Vindt het echt top dat je dit doet (beetje slijmen op zijn tijd is nooit weg he)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 24 July 2003 @ 15:48:
Mijn kennis hiervan is niet dermate dat ik dit gelijk doorheb, zou je als ik nog brutaler mag zijn ;)
Een beetje hulp erbij kunnen zetten.
Vindt het echt top dat je dit doet (beetje slijmen op zijn tijd is nooit weg he)
Ik ben nog brutaler, doe eens een poging.. :)
Een klein stukje was ik er nog bij vergeten te vertellen; dit is de ItemTemplate van een TemplateColumn.

[ Voor 13% gewijzigd door gorgi_19 op 24-07-2003 15:50 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
aha kijk we gaan het bekijken.
Zat net te lezen en zat te denken wat scheld die jongen toch veel... itemtemplate en templatecolumn bah vieze woorden :P

Maar ga kijken hoe ver ik kom. I'll get back to you. redelijk snel ben ik bang :S
dank je wel alvast

[ Voor 13% gewijzigd door Verwijderd op 24-07-2003 16:00 ]

Pagina: 1