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


Skapa dynamiska kontroller

Postades av 2004-12-02 12:34:51 - Mikael Alfredsson, i forum asp.net generellt, Tråden har 5 Kommentarer och lästs av 813 personer

Hejsan alla "Pellesoftare" !

Undrar om detta är möjligt och isåfall hur i helsike jag ska gå tillväga för att göra det.
Har 2 tabeller i en databas. Ex:

Tabell1 Tabell2
-------- --------
ProduktID ProduktID
Namn FunktionID
Mer info AntalTextboxar
Mer info InterntNamn
ExterntNamn

När jag har tagit fram den nödvändiga informationen från tabell1 för tex produktID 1 så ska jag för varje post i tabell2 som innehåller 1 i ProduktID ska sidan dynamiskt skapa:

CheckBox (som gör det möjligt att öppna/stänga nedanstående panel)

Panel

TextBox
TextBox
(Antalet textboxar som ska skrivas ut kommer från fältet AntalTextboxar i databasen, det kan med andra ord vara 1 textbox som ska ut, men det kan lika väl vara 100, det ska inte spela någon roll)


Så om vi säger att det finns 2 poster i tabell2 som har produktID 1.
Fältet AntalTextboxar i den första posten har värdet 3 och
fältet AntalTextboxar i den andra posten har värdet 1 så ska sidan se ut som följer:


|X|
Panel
TextBox
TextBox
TextBox
/Panel

|X|
Panel
TextBox
/Panel

Hoppas att någon kan hjälpa mig med detta för jag kommer just nu ingenstans.

/Mikael


Svara

Sv: Skapa dynamiska kontroller

Postades av 2004-12-05 13:09:54 - Emir Smajic

Hi,

this is actually very simple to do and there are many ways to do it, depending on which way do you wish to present your data. If you haven't found the solution to your problem yet, maybe this will help:

You can add controls programmatically to a Control collection of a page, or panel, just like you would do to any other collection. In this case I have added manually one Panel control to the page which is called 'pnlControls' and to which we will be adding all other controls to.

I'm not sure how do you access and present your data, so I will just assume that both tables are in some DataSet called 'ds' and that you have created a relation between them, similar to this:

ds.Relations.Add( new DataRelation( "produktRelation", new DataColumn [] { ds.Tables[ "Tabell1" ].Columns["ProduktID"] }, new DataColumn[] { ds.Tables[ "Tabell2" ].Columns["ProduktID"] }, true ) );

Now, for each row in Tabell1 we can access his child rows in Tabell2 (rows with the same ProduktID in this case) and we can programmatically add controls to the page for both rows from Tabell1 and rows from Tabell2:

foreach( DataRow parentRow in ds.Tables ["Tabell1"].Rows )
{
DataRow [] childRows = parentRow.GetChildRows( "produktRelation" );
if( childRows.Length > 0 )
{
for( int i = 0; i < childRows.Length; i ++ )
{
// Adding checkbox for each row from Tabell2
CheckBox chk = new CheckBox ();
chk.Text = "Details";
pnlControls.Controls.Add ( chk );

// Adding panel to host all TextBox controls
Panel pnl = new Panel ();
pnlControls.Controls.Add( pnl );

// Getting number of required TextBox controls and displaying them
int antalTextboxar = (int) childRows [i] [ "AntalTextboxar" ];
for( int antal = 0; antal < antalTextboxar; antal ++ )
{
TextBox txt = new TextBox ();
pnl.Controls.Add( txt );
}
}
}
}


Hope it helps

/smajky


Svara

Sv: Skapa dynamiska kontroller

Postades av 2004-12-05 20:45:29 - Andreas Håkansson

Mikael,

Du bör ta dig en titt på <b>Repeater</b> kontrollen.


Svara

Sv:Skapa dynamiska kontroller

Postades av 2004-12-07 10:38:48 - Mikael Alfredsson

Tack för era svar, jag har nu en ungefärlig hum om hur jag ska gå tillväga. Dessvärre så förstår jag inte varför jag får fel i följande kod:
<code>
<script runat="server">
Sub Page_Load(Sender As Object, e As EventArgs)
Dim myCheckBox As Checkbox = New Checkbox ()
myCheckBox.AutoPostback = True
plhCheck.controls.Add(myCheckBox)
AddHandler myCheckBox.CheckedChanged, AddressOf myCheckBox_OnChange
Dim myPanel As Panel = New Panel()
plcTextFields.controls.Add(myPanel)
End Sub

Sub myCheckBox_OnChange(sender As Object, e As System.EventArgs)
myPanel.Visible = False
End Sub
</script>

<html>
<body>
<form runat="Server">
<asp:PlaceHolder id="plhCheck"
runat="server"/>
<asp:PlaceHolder id="plcTextFields"
runat="server"/>
</form>
</body>
</html>
</code>

Felet som jag får är i subrutinen myCheckBox_OnChange och tyder på att namnet myPanel inte är deklarerat. Hur löser man en sådan sak? Tacksam för en vettig förklaring.

/Mikael


Svara

Sv: Skapa dynamiska kontroller

Postades av 2004-12-07 10:53:19 - Herbjörn Wilhelmsen

Hej,

Felet beror med all sannolikhet på att dina dynamiskt laddade kontroller (som du lagt till i dina placeholders) inte har lagts till i sidans ViewState och därmed inte återskapas när sidan postas tillbaka till servern.

Det finns flera sätt att lösa detta, ett bra och självklart sätt är att använda en panel-kontroll som lägger till dynamiska kontroller i sidans ViewState. Det finns flera sådana kontroller, här är länken till en :

http://www.denisbauer.com/ASPNETControls/DynamicControlsPlaceholder.aspx

mvh
Herbjörn


Svara

Sv:Skapa dynamiska kontroller

Postades av 2004-12-07 11:48:42 - Mikael Alfredsson

Tack för tipset, tog mig en titt på alla de filerna som följde med och alla de felmeddelanden som jag fick så om jag ska vara ärlig så känns det inte som någon vidare bra idé att använda kod som jag inte förstår något av.

Får väl i värsta fall försöka att knåpa ihop en egen panel-kontroll med viewstate.

Wish me luck :-(

/Mikael


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 601
27 953
271 705
4 429
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