[ASP.NET] Tonen record uit database != datagrid

Pagina: 1
Acties:

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 19-08 17:23
Ik heb nu al zo-veel over dat datagrid gelzen, dat ik mezelf bijna expert mag noemen :) Op zich ook een hele mooie tool, maa rwat ik wil is gewoon een pagina maken wat de details van 1 record laat zien. En dat wil ik nou eenmaal niet in een tabel. Ik zal ongetwijfeld wat over het hoofd zien, maar ik kom alleen maar datagrid, lists en repeaters tegen. Zelfs in mijn boek wat hier naast me ligt. Ik wil dus gewoon een product-specificatie maken. Kan iemand me de goede richting opduwen?

Een voorbeeld van wat ik wil is bv http://viddel.shop.tweake...product&nr=1027&groep=001

Moet ik gewoon een templatecolumn maken of gewoon heel veel columns maken? De detailinfo van mijn producten zijn nog gespecificeerder namelijk dan dit ...

And Bob's your uncle ...


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

gorgi_19

Kruimeltjes zijn weer op :9

Waarom wil je dit uberhaupt met een datagrid doen?
Je hebt een 1 row return.
Lees deze uit en zet de velden neer zoals je wordt conform een bepaald template; je hebt hier geen datagrid voor nodig.

Simepl gezegd: Lees de datatable, datareader of wat je dan ook gebruikt gewoon uit.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Scharnout
  • Registratie: November 2000
  • Laatst online: 19-08 17:23
Maw je plempt gewoon de databasevelden die je terugkrijgt in variabelen en die gebruik je in je html?

Maar daar vind je nou helemaal geen tutorials van terug ofzo .. ik zal bij msdn nog eens wat lezen over system.data.odbc anders ...

And Bob's your uncle ...


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

gorgi_19

Kruimeltjes zijn weer op :9

Scharnout schreef op 16 May 2003 @ 00:39:
Maw je plempt gewoon de databasevelden die je terugkrijgt in variabelen en die gebruik je in je html?

Maar daar vind je nou helemaal geen tutorials van terug ofzo .. ik zal bij msdn nog eens wat lezen over system.data.odbc anders ...
Mjah.. Dit is wel een hele kort door de bochte versie van de theorie. :)
Als je praktijkvoorbeelden wilt: Zoek eens naar LLBLGen, deze genereert imho wel redelijk een datatier (of hij helemaal goed werkt, ben ik nog niet achter, maar dit kan ook nog aan mij liggen omdat ik het nog niet goed snap, maar ben wel een paar vreemde dingen tegen gekomen) en laat wel een illustratie zien.

Verder kan je ook kijken naar de voorbeeld applicaties van Microsoft op www.asp.net.
Hierbij doel ik op IBuySpy en ASPNetForums. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Met onderstaande haal ik uit mijn database jumpteambase.mdb alle records uit de tabel jtsmb, door SELECT * FROM jtsmb te doen. Als je er maar eentje wil hoef je toch alleen maar je SQL statement aan te passen. In mijn geval laat ik ik van elk record de titel, plaatje en emailadres zien. Dat kan jij ook net zoals in de Viddel shop em als het uigebreider is zal ik zelf gewoon wat HTML tabellen bouwen om alles netjes neer te zetten ja...

Misschien is dit wel niet wat je bedoeld, maar hey, dit is mijn eerste en enige ASP.NET uitprobeerseltje van een tutorial en het werkt. Ik weet niet meer waar de tutorial staat maar ik had gewoon gezocht op google...

<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
sub Page_Load
dim dbconn,sql,dbcomm,dbread
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; data source=" & server.mappath("../jumpteam/jumpteambase.mdb"))
dbconn.Open()
sql="SELECT * FROM jtsmb"
dbcomm=New OleDbCommand(sql,dbconn)
dbread=dbcomm.ExecuteReader()
customers.DataSource=dbread
customers.DataBind()
dbread.Close()
dbconn.Close()
end sub
</script><html>
<body><form runat="server">
<asp:Repeater id="customers" runat="server"><HeaderTemplate>
<table border="1" width="100%">
</HeaderTemplate><ItemTemplate>
<tr>
<td><%#Container.DataItem("mb_titel")%></td>
<td>[img]"../jumpteam/wwwroot/pictures/<%#Container.DataItem("mb_plaatje")%>"></td> <td><%#Container.DataItem("mb_email")%></td> </tr> </ItemTemplate><FooterTemplate> </table> </FooterTemplate></asp:Repeater> </form></html> </body[/img]

  • 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
26
27
28
29
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
sub Page_Load
dim dbconn,sql,dbcomm,dbread
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; data source=" & server.mappath("../jumpteam/jumpteambase.mdb"))
dbconn.Open()
sql="SELECT * FROM jtsmb"
dbcomm=New OleDbCommand(sql,dbconn)
dbread=dbcomm.ExecuteReader()
customers.DataSource=dbread
customers.DataBind()
dbread.Close()
dbconn.Close()
end sub
</script><html>
<body><form runat="server">
<asp:Repeater id="customers" runat="server"><HeaderTemplate>
<table border="1" width="100%">
</HeaderTemplate><ItemTemplate>
<tr>
<td><%#Container.DataItem("mb_titel")%></td>
<td>[img]"../jumpteam/wwwroot/pictures/<%#Container.DataItem("mb_plaatje")%>"></td>
<td><%#Container.DataItem("mb_email")%></td>
</tr>
</ItemTemplate><FooterTemplate>
</table>
</FooterTemplate></asp:Repeater>
</form></html>
</body[/img]

Waarom gebruik je hier een repeater voor? Als je 1 rij returned, hoeft dat dus niet, imho :)

[ Voor 24% gewijzigd door gorgi_19 op 16-05-2003 01:02 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Nee, ik zei ook al dat ik in mijn voorbeeldje alle rijen records nam... Geen goed voorbeeld dus voor 1 item :) nou ja ik dacht alleen de SQL aanpassen en geen loopje ja. Gewoon het ID in de URL meegeven toch?

Trouwens, is VisualBasic.Net hetzelfde als ASP.Net? Ik zie toch asp erin staan en deze pagina eindigt ook op .aspx?

Ben .Net newbie hoor, was eerst ColdFusion user, maar dat gaat nergens heen geloof ik, werkt ook niet op Windows 2003 Server...

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 19-08 17:23
Misschien nuttig om te melden dat ik MySQL en C# gebruik :)

And Bob's your uncle ...


Verwijderd

Gieg, zal wel door je ondertitel komen dan :)

Maarre, in je topictitel staat toch ook ASP.NET?
Is dan ASP.NET = VB.NET = C# ??? nee toch ???

[ Voor 54% gewijzigd door Verwijderd op 16-05-2003 01:26 ]


  • Scharnout
  • Registratie: November 2000
  • Laatst online: 19-08 17:23
Met ASP.NET kan je zowel VB.NET als C# (en alle andere talen van het .NET framework) als syntax gebruiken.. Voor de absolute basics kan je misschien het best even op www.asp.net http://aspnet.4guysfromrolla.com/ of www.w3schools.com kijken

And Bob's your uncle ...


  • Scharnout
  • Registratie: November 2000
  • Laatst online: 19-08 17:23
Ik heb nu een tijdje zitten pielen met Container.DataItem , maar ik krijg het niet echt lekker werkend. Moet je dat per se in een datagrid gebruiken?

And Bob's your uncle ...


  • tijn
  • Registratie: Februari 2000
  • Laatst online: 31-07 00:06
Als je maar 1 record wilt tonen/wijzigen maak je gewoon een form met labels en textboxen oid. In je Page_Load zet je dan de Text properties van die controls, et voila!

Container.DataItem gebruik je wanneer je een control bind via de DataSource property (zoals DataGrid, Repeater etc.).

Cuyahoga .NET website framework


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

gorgi_19

Kruimeltjes zijn weer op :9

Scharnout schreef op 16 May 2003 @ 02:19:
Ik heb nu een tijdje zitten pielen met Container.DataItem , maar ik krijg het niet echt lekker werkend. Moet je dat per se in een datagrid gebruiken?
Ik had misschien iets duidelijker kunnen aangeven dat ik alleen jouw code tussen vb.net code-tags had gezet; meer niet aan veranderd.

Je hebt dus helemaal geen container.dataitem nodig. Gewoon direct de datatable, sqldatareader of waar je dan ook de waarden in hebt gestopt direct uitlezen, zonder tussenkomst van welke andere control dan ook.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1