Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Lösning på mitt problem?

Postades av 2004-09-27 20:13:56 - Mikael Åhlén, i forum asp.net generellt, Tråden har 20 Kommentarer och lästs av 592 personer

Hej alla på Pellesoft,

Jag håller på med ett serie system och vill lista vilken position (när jag listar de) de har. I ASP var det enkelt, det borde det vara med ASP.net också men jag har inte lyckats ännu.

I ASP kunde man skriva så här

...
Pos = 1
Do Until MyRecordSet.EOF
   Response.Write(" " & Pos & " - " & MyRecordSet("TeamName") & "<br/>")
MyRecordSet.MoveNext
Pos = Pos + 1
Loop
...


Hoppas det finns en smidig lösning för detta!

/m


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-27 20:22:38 - Patrik Dahlén

Jag tycker att du tar en titt på de Tutorials som finns på http://samples.gotdotnet.com/quickstart/aspplus/
I ASP.NET är det nämligen så att det finns en massa färdiga kontroller. För att få fram din lista t.ex. så kan du lägga en DataList, Repeater eller DataGrid i din sida och sedan DataBinda ditt databasresultat till kontrollen och på så sätt få fram listan.


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-27 21:42:10 - Mikael Åhlén

Jo, jag använder en Repeater. Jag trodde jag lyckades först men det gjorde jag icke. Typ så här gjorde jag (sitter vid fel dator nu)

...
Dim pos As Integer = 1
Do While MyReader.Read()
   Pos = Pos + 1
   MinRepeater.DataSource = MyReader
   MinRepeater.DataBind()
Loop
End While


Sedan om jag använder en array så går det ju hur smidigt som hellst. Jag har ej kollat på hur man gör för att fylla en array från databasen än, tycker ni att det är vettigt att använda en array för alla info?

/m


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-27 22:10:36 - Patrik Dahlén

Det du gör nu är att ud loopar genom din Reader och binder varenda loop.
Kolla de tutorials som går igenom databindning.
Felet du gör är att du tänker Klassisk ASP istället för att börja om från början och ta reda på HUR man göra saker i .NET.


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-29 09:13:32 - Mikael Åhlén

Faktiskt har jag inte hittat något om hur man kan göra (förutom med Array), så om jag inte hittar en lösning får jag läsa från databasen till arrayen och sedan loopa från arrayen? (kanske jag som söker dåligt?)


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-29 09:44:22 - Patrik Dahlén

Felet du gör är, som jag redan sagt, att du tänker "klassisk asp". Du ska inte loopa nånting.
Gå igenom de tutorials som finns.
För att lösa ditt problem så kan du lägga en DataList i din .aspx sida. I din code-behind anropar du
databasen och får tillbaka t.ex. ett DataSet eller DataTable. Sedan sätter du
<code>
myDataList.DataSource = myDataSet
myDataList.DataBind
</code>
och tjoff så har du din lista.
I din DataList i .aspx koden kan du bestämma vad som ska visas och hur det ska visas.
Så återigen, gå igenom tutorials på http://samples.gotdotnet.com/quickstart/aspplus/ och läs mer om kontrollerna på msdn.microsoft.com om det behövs.

Det finns inga genvägar till att lära sig .NET.


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-29 09:48:54 - Johan Bovin

http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWebUIWebControlsRepeaterClassTopic.asp?frame=true

http://www.sitepoint.com/article/asp-net-repeater-control

http://www.dotnetspider.com/Technology/KBPages/452.aspx

Men som sagt, glöm allt du kan om asp, för det hjälper dig inget ;-)


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-29 15:52:15 - Mikael Åhlén

Är det jag som förklarat dåligt eller ni som missuppfattad mig? (eller t.o.m. jag som missuppfattar er?!)

Jag listar nu allt med DataList och Repeater. Så det är inget problem.

Så här vill jag att det ska vara.

<info>
Serie 1 M V O F + - +/- P
1. LagA 1 1 0 0 7 2 5 3
2. LagB 1 0 1 0 4 4 0 1
3. LagC 1 0 1 0 4 4 0 1
4. LagD 1 0 0 1 2 7 -5 0
</info>

Det är alltså 1, 2, 3 + 4 jag vill få ut. Att binda data till kontrollen är inga problem. Jag har gjort klart serie systemet förutom just att få ut siffrorna (vilken position de har).

/m


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-29 15:57:51 - Patrik Dahlén

DataList OCH Repeater? Du menar DataList och Reader va?

Det är så jag trodde att du ville ha.
Om du fortfarande har din lösning med while myReader.Read så gör du fel. Då binder du din DataList så många gånger som du har rader i readern.

I aspx-koden lägger du en Repeater, DataList eller DataGrid. Du anger vad som ska stå som Kolumnrubriker och bestämmer vilket värde från dbfrågan som skall visas i kolumnen.

För att få med placeringskolumnen, vilket bara är en räknare så borde du kunna använda radens index+1.


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-29 16:05:59 - Mikael Åhlén

jag använder inte while, det var bara en fråga om man kunde få reda på rad numret därifrån.

Jag skriver en uppsats för skolan nu men jag kan skriva ett snabbt exempel på hur jag gör.

Dim CmdText = "SELECT * FROM Serier WHERE Div = " & Cint(Request.QueryString("div"))
Dim MyConnection As New MySqlConnection(ConfigurationSettings.AppSettings("Conn"))

Dim Cmd As New MySqlCommand(CmdText, MyConnection)
MyConnection.Open()
Dim MyReader As MySqlDataReader = Cmd.ExecuteReader ' <- tror det var så här

If MyReader.HasRows then
   MinRepeater.DataSource = MyReader
   MinRepeater.DataBind()
   ObjConn.Close()
Else
   EnLiteral.Text = "Tomt"
End if


Koden jag har ser inte exakt ut så men typ.

Sedan så menade jag inte att jag använder både Repeater + DataList utan jag använder Repeater & DataList för att lista data när jag gör det.

/m


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-29 16:09:26 - Patrik Dahlén

Japp, det är precis så där det ska göras.
Men var kommer DataListan in i bilden?

Nu har jag ingen färdig kod och ingen tid att testa men du borde kunna lägga en label som första kolumn i Repeatern och i en OnItemDataBound få fram index på raden du är på och lägga det index+1 i labeln för att få fram placeringen.


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-29 16:12:03 - Mikael Åhlén

Ok, tack. Jag hinner inte testa idag, men det verkar vara en bra lösning

/m


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-29 21:49:09 - Mikael Åhlén

Har kommit en låång bit på väg, just nu ser koden ut så här

<code vb.net>
Sub Who_Pos(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
position.Text = e.Item.ItemIndex + 1
End Sub
</vb>

Sedan i repeatern OnItemDataBound="Who_Pos".

Men jag får felmeddelande, jag har sökt här på pellesoft men utan framgång (ska söka på google sen också).

Felmedd.
<info>
System.NullReferenceException: Objektreferensen har inte angetts till en instans av ett objekt.
</info>


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-29 22:07:27 - Patrik Dahlén

Du måste göra en FindControl på position. Eftersom en Repeater har samma kontroller på varje rad så vet inte koden vilken kontroll du tänker lägga in text i.
<code>
Sub Who_Pos(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
Dim tmpPosition As Label = CType(e.Item.FindControl("position"), Label)
tmpPosition.Text = e.Item.ItemIndex + 1
End Sub
</code>


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-30 07:42:10 - Mikael Åhlén

Hej, jag får fortfarande samma felmeddelande.

Men när jag gör en Response.Write så funkar det, men när jag använder tmpPosition.Text får jag felet.

Vad kan det bero på?


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-30 08:36:33 - Patrik Dahlén

Har du lagt en Label som har ID="position" i din Repeater då?


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-30 08:44:41 - Andreas Håkansson

Troligen inte, eller så han har glömt <b>runat="server"</b> på sin label. Prova med följande kod så skall du se att den inte hittar din kontroll (vilket iofs är uppenbart sen tidigare, men sidan fortsätter exekvera)

Sub Who_Pos(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
        Dim tmpPosition As Label = CType(e.Item.FindControl("position"), Label) 
        If Not tmpPosition Is Nothing Then
             tmpPosition.Text = e.Item.ItemIndex + 1
        Else
             Me.Response.Write("Den är null!")
        End If
End Sub


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-30 14:12:58 - Mikael Åhlén

Jag är säker på att jag har ID="Position" och Runat="server", det är i min standard att skriva så.

<asp:TYP ID="x" Runat="server"></asp:TYP> eller bara <asp:TYP ID="x" Runat="server"/>

Men jag ska testa din kod när jag får tillgång till datorn med projektet på.

/m


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-30 14:43:50 - Patrik Dahlén

Lägg in din Repeater kod så kan vi kolla på den.


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-30 16:36:26 - Mikael Åhlén

Så här ser min repeater ut.

<asp:repeater id="IzDivision" Runat="server" OnItemDataBound="Who_Pos">
								<HeaderTemplate>
									<tr>
										<td colspan="2"><b>Vilken Serie?</b></td>
										<td width="40" align="center"><b>Matcher</b></td>
										<td width="25" align="center"><b>V</b></td>
										<td width="25" align="center"><b>O</b></td>
										<td width="25" align="center"><b>F</b></td>
										<td width="25" align="center"><b>+</b></td>
										<td width="25" align="center"><b>-</b></td>
										<td width="25" align="center"><b>+/-</b></td>
										<td width="25" align="center"><b>P</b></td>
									</tr>
								</HeaderTemplate>
								<ItemTemplate>
									<tr style="background: #FFF;">
										<td width="25">
											<asp:Label ID="Position" Runat="server" /></td>
										<td><%# DataBinder.Eval(Container.DataItem, "IzLagName") %></td>
										<td align="center"><%# Container.DataItem("IzLagWin") + Container.DataItem("IzLagUnd") + Container.DataItem("IzLagLose") %></td>
										<td align="center"><%# Container.DataItem("IzLagWin") %></td>
										<td align="center"><%# Container.DataItem("IzLagUnd") %></td>
										<td align="center"><%# Container.DataItem("IzLagLose") %></td>
										<td align="center"><%# Container.DataItem("IzLagGoalForward") %></td>
										<td align="center"><%# Container.DataItem("IzLagGoalBackward") %></td>
										<td align="center"><%# Container.DataItem("IzLagGoalForward") - Container.DataItem("IzLagGoalBackWard") %></td>
										<td align="center"><%# Container.DataItem("IzLagPoints") %></td>
									</tr>
								</ItemTemplate>
</asp:Repeater>


Svara

Sv: Lösning på mitt problem?

Postades av 2004-09-30 16:44:32 - Mikael Åhlén

Jag fick det att funka nu med Andreas kod, dock tog jag bort Else då den skrev ut 1,2,3 osv + Den är null!!

/m


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 170
27 953
271 705
565
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies