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ägg till control i runtime

Postades av 2003-12-03 14:47:52 - Anders Bengtsson, i forum asp.net generellt, Tråden har 7 Kommentarer och lästs av 697 personer

Hur gör man för att lägga till en Textbox i en tabell genom codebehind

Jag har en tabell.

<code>
<TABLE id="Table1" style="Z-INDEX: 119; LEFT: 80px; POSITION: absolute; TOP: 344px" cellSpacing="1" cellPadding="1" width="300" border="1">
<TR>
<TD id="myTD" runat="server"></TD>
<TD></TD>
</TR>
<TABLE>
</code>

nu vill jag kunna lägga in en textbox i myTD genom codebehind. Jag försökte så här
<code>
TableCell myTD = (TableCell)FindControl("myTD");
TextBox a = new TextBox();
myTD.control.add(a);
</code>

felet jag får är
Specified cast is not valid.

någon som kan hjälpa mig


Svara

Sv: lägg till control i runtime

Postades av 2003-12-03 14:55:26 - Karl Adriansson

Till att börja med så ska det ju vara myTD.controls.add(a);


Svara

Sv: lägg till control i runtime

Postades av 2003-12-03 14:57:08 - Johan Normén

Har du kollat så den verkligen hittar din control?
Ta en getType på myTD och se om det stämmer.

Sedan skall du använda controls.add...

<code>
TableCell myTD = (TableCell)FindControl("myTD");
if(.... )
{
TextBox a = new TextBox();
myTD.controls.add(a);
}
</code>
Detta bör fungera, brukar lägga till en if runt för att försäkra mig om att saker och ting finns som jag sökt efter, detta i fall man vill eller kommer att öka dynamiken ännumera. Nu kör du en FindControl och då är det att rekomendera if satsen...

Om du vet om att kontrollen redan finns behöver du inte söka efter den utan lägga till din control med en gång. OBS! Se bara till så du deklarerat den i din codebehind om du kör med det.
<code>
myTD.Controls.Add(new TextBox());
</code>

Mvh Johan



Svara

Sv: lägg till control i runtime

Postades av 2003-12-03 15:41:24 - Anders Bengtsson

Får inte rätt på det
vad menar du med ta en getType


Svara

Sv: lägg till control i runtime

Postades av 2003-12-03 15:48:33 - Fredrik Normén

Det är ingen TabelCell du har utan en HTMLTableCell.

Ändra:

(TableCell)FindControl("myTD");

till:

(HtmlTableCell)FindControl("myTD");

/Fredrik Normén NSQUARED2
http://www.nsquared2.net


Svara

Sv: lägg till control i runtime

Postades av 2003-12-03 16:15:58 - Johan Normén

Ibland ser man inte skogen för alla träden... :-)

När du gör en FindControl så letar du efter något, med det menas att du egentligen inte är helt säker på om saken du letar efter finns. I ditt fall vet du att den finns men som en regel kan du lägga en if sats och koll om du fått tag i rätt kontroll genom att kolla dess typ. Inget måste men kan rekomenderas.
Du kan kolla om det är rätt typ genom att skriva:
<code>
if(myTd is HtmlTabelCell)

//eller

if(myTd.GetType == "System........HtmlTabelCell")
</code>

Som sagt så är det upp till dig själv om du vill göra denna kontrol. Inget måste.

Mvh Johan


Svara

Sv: lägg till control i runtime

Postades av 2003-12-03 20:44:06 - Anders Bengtsson

ah problemet var att jag hade gjort en TableCell istället för en HtmlTableCell

om jag kör denna koden så läggs en textbox till. Men om jag klickar på den igen så läggs ju inte en ny till. Hur ska jag göra för att den ska fortsätta att lägga till textboxar när man klickar och kan man på något sätt få dem att byta rad <br> så att de inte kommer på längden, utan lägger sig under varandra i tabellen.

<code>
private void Button3_Click(object sender, System.EventArgs e)
{
TextBox a = new TextBox();
HtmlTableCell myTD = (HtmlTableCell)FindControl("myTD");
myTD.Controls.Add(a);
}
</code>


Svara

Sv: lägg till control i runtime

Postades av 2003-12-04 06:28:15 - Fredrik Normén

När du lägger till kontroller dynamiskt så måste du lägga till varje kontroll vid varje postback. Så se till att spara undan dina dina tilllagda kontroller i tex ett Cache objekt eller i en session. I tex Page_Load lägger du till de kontroller som du tidigare har adderat till tabellen. För att lägga en kontroll under en annat så kan du tex använda dig av en enkel <br>:

<code>
TextBox a = new TextBox();
HtmlTableCell myTD = (HtmlTableCell)FindControl("myTD");
myTD.Controls.Add(a);
myTD.Controls.Add(new LiteralControl("<br>"));
</code>

/Fredrik Normén NSQUARED2
http://www.nsquared2.net


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 165
27 952
271 704
1 611
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