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


Flera problem = en kolumn per id och id i toppen på kolumn

Postades av 2006-02-15 21:43:56 - Björn Berglund, i forum asp.net generellt, Tråden har 0 Kommentarer och lästs av 631 personer

Hej,

Så här är sidan tänkt att fungera:

1. Användaren fyller i ett Textfält om "Vad testade ni?"
2. Användaren gör ett val ur en Dropdownlist, mellan 1 och 10, för "Hur många produkter testades"
3. Användaren trycker på knappen Skapa boxar

4. Nu ska en datagrid komma fram, där antalet rader avgörs av valet i Dropdownlist:en ovan.

5. I datagriden finns första kolumnen fylld med textboxar för att skriva i produktnamnen

6. Övriga kolumner ska skapas on-the-fly, lika många som var närvarande den kvällen (finns lagrat i databastabell). Och varje kolumn ska motsvara en närvarandes. Alltså var medlem_id = 1 närvarande så får han kolumn 1 och var även medlem_id = 3 närvarande får han en kolumn också. Header-text på dessa kolumner ska vara deras medlem_id. Cellerna i kolumnerna är textboxar där användaren ska fylla i vad de olika medlemmarna röstade.

Ok! Mycket information på en gång. Men så är det tänkt att fungera. Men det gör det inte. Punkterna 1-4 fungerar bra.

Däremot blir antalet kolumner (exkl. produktnamnskolumnen) dubbelt så många som det är tänkt (var 3 närvarande blir det 6 kolumner osv). Detta kanske har något med IsPostback att göra (vild gissning!).

Dessutom kan jag inte få att medlem_id-värdet att stå överst i varje kolumn. Eller rättare sagt inte alla värden, utan samma värde skrivs över alla kolumner! Och detta är ett stort problem, vet inte hur jag kan liksom stega mig igenom min datareader och skriva ut aktuellt id för varje loop.

Bifogar min asp.net-kod. Det är rena spaghetti-koden, tar gärna emot tips på hur jag kan göra det bättre.

Någon som kan hjälpa mig lite??? Har försökt läsa mig till lösning men klurar inte ut det!

Stort tack på förhand!

<%@ Page Language="VB" Debug="true" ContentType="text/html" ResponseEncoding="iso-8859-1"%>
<!--#include file="inkluderingsfiler/globalt.inc.aspx" -->

<%@ Import Namespace="System.data" %>
<%@ Import Namespace="System.data.oledb" %>
<%@ Import Namespace="system.web.mail" %>

<script language="VB" runat="server">

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load	
'// kolla så att är inloggad, om inte redirect till logon.aspx
Dim medlem_id as integer = Session("medlem_id")
	If medlem_id <=0 then 
		response.redirect("log_on.aspx")
	else
end if  
  
'************************DATAGRIDEN*************************
Dim kvall_id=Request.QueryString("kvallens_id")
'// Anslut till databasen.
Dim Con as new OLEDBConnection(db)
'Metoden open öppnar anslutningen
Con.open()
Dim sql7 as string
sql7="SELECT count(*) as antal FROM tblNarvarande WHERE tblNarvarande.kvall_id=" & kvall_id
	
'// Hämta data från databasen med hjälp av funktionen datareader_data
Dim Dr7 as OLEDBDatareader = datareader_data(sql7)
Dr7.read()
'*************************************************************
 '// skapa en ny templatecolumn för varje loop-genomgång (upp till lika många som var närvarande)
dim i as integer		
	For i=0 To Dr7("antal") -1
		Dim tc1 As New TemplateColumn()
		'// Anslut till databasen.
    	Dim Con8 as new OLEDBConnection(db)
		Con8.open()
		Dim sql8 as string
		sql8="SELECT tblNarvarande.medlem_id as Test FROM tblNarvarande WHERE tblNarvarande.kvall_id=" & kvall_id
	
		'// Hämta data från databasen med hjälp av funktionen datareader_data
		Dim Dr8 as OLEDBDatareader = datareader_data(sql8)
		Dr8.read()	
   		
   		tc1.HeaderTemplate = New DataGridTemplate(ListItemType.Header, Dr8("Test"))
   		tc1.ItemTemplate = New DataGridTemplate(ListItemType.Item, "betyg")
		
   		dg_medverkande2.Columns.Add(tc1)
  	Next
	
end sub

'**************************************************************************************************************
' En class för hur jag vill att mina kolumner ska se ut
'**************************************************************************************************************
Private Class DataGridTemplate
   Implements ITemplate
   Dim templateType As ListItemType
   Dim columnName As String

	Sub New(ByVal type As ListItemType, ByVal ColName As String)
      templateType = type
      columnName = ColName
	End Sub

	Sub InstantiateIn(ByVal container As Control) _
      Implements ITemplate.InstantiateIn
      Dim lc As New Literal()
      Select Case templateType
         Case ListItemType.Header
            lc.Text = columnName 
            container.Controls.Add(lc)
         Case ListItemType.Item
            Dim tb As New TextBox()
			tb.cssclass = "formtext"
            tb.Text = ""
            container.Controls.Add(tb)
      End Select
   	End Sub
End Class
'**************************************************************************************************************

'**************************************************************************************************************
'Hur många rader ska det vara i vår datagrid
'**************************************************************************************************************	
function antalBoxar(antalboxes as integer) as integer
	dim antalboxes2 as integer
	antalboxes2 = antalartiklar.selecteditem.value
	return antalboxes2
end function
'**************************************************************************************************************

'**************************************************************************************************************
'När användaren skrivit in vad de testat och valt antal testprodukter trycker han på Okej och då körs nedan kod.
'**************************************************************************************************************	
sub make_boxes(sender As Object, e As EventArgs)
	'// när vi skapar betygsformuläret gör tidigare kontroller oaktiverade
	txtTestav.enabled = false
	antalArtiklar.enabled = false
	okej.enabled = false
	lblVad.enabled = false
	lblHur.enabled = false
	
	'************************DATAGRIDEN*************************
	Dim kvall_id=Request.QueryString("kvallens_id")
    '// Anslut till databasen.
    Dim Con2 as new OLEDBConnection(db)
    Con2.open()
	
	Dim sql2 as string
	
	sql2="SELECT tblNarvarande.* FROM tblNarvarande"
	
	Dim Ad as new OLEDBDataAdapter(sql2 ,Con2)

    '// Dataset förvarar data i minnet (precis som en datareader). Fördel dataset: sidbläddring.
    Dim Ds as new Dataset

	Ad.fill(Ds,"dg_medverkande2")
	'****************************************************************************************
	
    '// Datagridens datakälla ska vara objektet Ds
    dg_medverkande2.DataSource=Ds

    '// Det är nu innehållet visas i datagriden
    dg_medverkande2.DataBind()
	
    '// Stäng anslutningen.
    Con2.close()
	Registrera.visible = true
	'*************************************************************************
end sub
'**************************************************************************************************************

'***************************************************************************************
'Funktion för att hämta data från databasen
'***************************************************************************************
'Anropas så här:	
'				Dim Dr as OLEDBDatareader
'				Dr = datareader_data("sql-satsen här")
function datareader_data(sql as String) as OLEDBDatareader			
	'// Deklarera och öppna anslutning
	Dim Con as new OLEDBConnection(db)
	Con.open()
	'// Hämta info från databasen med hjälp av sql-satsen och anslutnings-objektet
	Dim Cmd as New OLEDBCommand(sql,Con)
	'// Skapa en datareader att lägga information i
	Dim Dr as OLEDBDatareader
	'// Knyt info från command-objekt till vår datareader
	Dr = Cmd.executeReader(Commandbehavior.closeConnection)	
	'// Returnera datareader
	return Dr
	'// stäng anslutningen
	con.close()
			'// stäng datareadern
	dr.close()
end function
'***************************************************************************************


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 153
27 952
271 704
936
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