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 texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-28 14:59:23 - Mikael Orm, i forum asp.net generellt, Tråden har 11 Kommentarer och lästs av 645 personer

Har inte riktigt förstått det här med att skapa textbox mm från codebehind sidan.

Mitt problem är att jag läser in en XML fil som ska generera olika typer av textbox dropdownlist mm.

Om värder "Formtype" = Textbox ska jag rita ut en textbox
Om värder "Formtype" = Dropdownlist ska jag rita ut en Dropdownlist osv

Därefter kommer jag att posta formuläret...

Hur går man tillväga för att rita ut dessa? Jag måste även namnge dom efter typen Name i XML för att kunna bearbeta formulären efter postning.

Hoppas någon förstår hur jag menar!

Resultatet ska bli ungefär som följer:

Namn: <asp:TextBox>
Adress: <asp:TextBox>
Land: <asp:dropdownlist> Listar olika land
osv osv

OBS! Dessa fält är ej givna då man skapar vilka fält man vill i vilken ordning man vill.


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-28 15:56:08 - Oskar Johansson

Du måste för det första ha en container, t.ex. en asp:placeholder, en asp:label eller liknande som du placerar på sidan. Se till att du har en variabel som innehåller den, säg t.ex. "phContent" eller något sådant.

Sedan kör du med följande kod:
<code>
TextBox c; //deklarera din kontroll
c = new TextBox(); //skapa din kontroll
c.Id = min_id_variabel
phContent.Controls.Add(c); //lägg in din kontroll i din container
</code>

Nu antog jag att du har lyckats reda ut hur du läser xml-filen.


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-30 09:16:38 - Mikael Sand

Page har också en container :-)

Till dig som startade inlägget: RIKTIGT kul lösning. Den ska jag sno :-)


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-30 10:04:05 - Mikael Orm

Ja gör det du! Jag har själv snott den... :-)

Ok! Nu förstår jag hur man kan gå till väga! Skapar nog en PlaceHolder och bygger upp en tabell i den där jag lägger till formulären enligt ovan...


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-30 10:52:40 - Mikael Orm

Hur binder man en WebControls till en DataColumn?

Försöker med följande:

Dim oTable As New DataTable("FormFields")
Dim oRow As DataRow

'Skapar två kolumner
oTable.Columns.Add()
oTable.Columns.Add()

Loop....
oRow = oTable.NewRow()
oRow(0) = Caption
Dim MyTextBox As New TextBox
MyTextBox.ID = GetAttribValue(oFieldNode, "caption", "")
MyTextBox.Text = oFieldNode.InnerText
MyTextBox.CssClass = "Button"
oRow(1) = MyTextBox

oTable.Rows.Add(oRow)

Slut på loop

DataGrid1.DataSource = oTable
DataGrid1.DataBind()

I detta fall så returneras texten "System.Web.UI.WebControls.TextBox" i oRow(1)


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-30 11:34:39 - Benny Jonsson

Jag har samma problem men försöker lösa det med usercontrols och hämtar hur sidan skall genereras från en databas... Jag kan ju säga att det är mycket klydd med usercontrolls och dynamiskt tillagda saker i aspx. Om jag får löst trådarna [Postback (tar bort usercontrols) vid dynamiskt tillagda usercontrols ] och [UserControl Object reference not set to an instance of an object.] så blir det nog en alternativ lösning till ditt våra problem....


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-30 12:02:38 - Benny Jonsson

Jag slängde samman ett litet exemple som du nog kan ha nytta av... inte snyggt men du kan nog fixa en snygg lösning utifrån den.
Ta ett tomt form och släng in en knapp och lägg koden nedan i codebehind
<code>
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim j As Integer
Dim i As Integer
For i = 1 To 3
Dim aTest As Control
If i Mod 2 = 0 Then
aTest = New TextBox
Else
aTest = New DropDownList
End If
FindControl("form1").Controls.Add(aTest)
If Not Page.IsPostBack Then
If TypeOf aTest Is TextBox Then
CType(aTest, TextBox).Text = (CStr(i))
End If
If TypeOf aTest Is DropDownList Then
For j = 1 To 5
CType(aTest, DropDownList).Items.Add(CStr(i + j))
Next
End If

End If
Next
End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim aCtrl As System.Web.UI.Control
Button1.Text = ""
For Each aCtrl In FindControl("form1").Controls
If TypeOf aCtrl Is TextBox Then
Button1.Text = Button1.Text & " : " & CType(aCtrl, TextBox).Text
End If
If TypeOf aCtrl Is DropDownList Then
Button1.Text = Button1.Text & " : " & CType(aCtrl, DropDownList).SelectedItem.Text
End If

Next

End Sub
</code>


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-30 13:52:33 - Mikael Orm

Tackar så mycket! Men förstår inte hur man gör för att stoppa in ex textboxen i en datakolumn?
Jag vill ju positionera ut fälten i en tabell enligt

Namn: <TextBox>
Adress: <TextBox>


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-31 10:42:59 - Mikael Orm

I vissa fall verkar .Net vara helt värdelöst enligt min åsikt.
Så fort man ska göra någonting dynamiskt så skiter det sig i .net. Det slutar alltid med att man får göra en blandning av gammal asp kod och inte som det är tänkt att man ska göra.

Jag kan inte hitta ett enda exempel där man kan lägga till en textbox i en cell i en datagrid dynamiskt. Allting verkar vara byggt på det sättet att man i förväg måste veta vilken webcontrol man ska använda och lägga in den i aspx sidan manuellt.

Jag vet att jag kan alldeles för lite om .net men det borde inte vara så svårt att lösa ett så enkelt problem som det ovan...


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-31 12:59:58 - Mikael Wedham

Missförstå mig rätt nu!!!

Ibland verkar folk tycka att bilar är rätt kassa. Jag vill att min bil skall bli snabbare, det fixar jag ju lätt. Jag monterar på 52" hjul, så blir den grymt snabb, för det gjorde jag med min traktor. (Den blev långsam med 13" hjul, så tvärtom borde funka)
Problemet är att det inte går på större hjul än 24" på min bil. Därför frågar jag på Pellesoft:

"Hur monterar jag 52" hjul på min bil" när den egentliga frågan är "Hur får jag min bil att bli snabbare"

Varningsklockan börjar ringa när du skriver att du måste göra en blandning av gammal och ny kod! Enligt mina begränsade erfarenheter behövs detta relativt sällan. Alltså borde det finnas ett smartare .NET sätt att utföra det du vill.

Fundera på vad du vill göra, beskriv beteendet, så får du säkert fler tips som visar hur du skall börja fundera på lösningen.

/micke


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-31 13:17:57 - Mikael Orm

Jag har ju beskrivit exakt vad jag vill göra!!!
Och det är ju inte något avancerat problem, tvärtom ett väldigt enkelt problem som man i vanlig asp löser på väldigt kort tid.

Jag vet att jag har dåliga kunskaper och jag är övertygad om att det finns en bra lösning på detta i .net!
Förstår bara inte att det ska vara så svårt att hitta en lösning på det!

Och jag blir ju inte direkt klokare av att höra att det borde finnas ett bra sätt att lösa det på i .Net


Svara

Sv: Skapa texbox, dropdownlist mm från codebehind sidan

Postades av 2004-08-31 15:44:18 - Mikael Orm

Löste det på följande vis:

Har lagt ut en <asp:PlaceHolder id="PlHolder" runat="server"></asp:PlaceHolder> i aspx sidan

Dim MyLabel As Control
Dim MyTextBox As Control

MyLabel = New Label
CType(MyLabel, Label).Text = "<table>"
PlHolder.Controls.Add(MyLabel)

Loop...

MyLabel = New Label
CType(MyLabel, Label).Text = "<tr><td>" & Caption & "</td><td>"
PlHolder.Controls.Add(MyLabel)
Select Case FormType
Case "text"
MyTextBox = New TextBox
MyTextBox.ID = Namn
CType(MyTextBox, TextBox).CssClass = "Button"
CType(MyTextBox, TextBox).Text = InnerText
PlHolder.Controls.Add(MyTextBox)
End Select

MyLabel = New Label
CType(MyLabel, Label).Text = "</td></tr>"
PlHolder.Controls.Add(MyLabel)

Next....

MyLabel = New Label
CType(MyLabel, Label).Text = "</table>"
PlHolder.Controls.Add(MyLabel)


Kanske inte så snyggt kodmässigt men nu kan jag i alla fall placera ut mina textboxar , dropdownlister mm där jag vill ha dom.
Vill helst av allt ha dom i en datagrid så man slipper skriva ut <table><tr><td> elementen...
Kanske någon som vet hur det går till?


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 169
27 953
271 705
960
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