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


En fråga om stringbuilder.

Postades av 2004-08-03 23:00:38 - Magnus Jonsson, i forum asp.net generellt, Tråden har 15 Kommentarer och lästs av 618 personer

Jag läste härom dagen om funktionen stringbuilder och jag tyckte att den skulle kunna passa till en funktion som jag har på min sida. Det är så att jag har en ascx-sida som innehåller en text samt några funktioner. Man ska kunna visa den texten i två olika layoter. Utan att man ska behöva skriva texten två ggr, tänkte jag att man skulle kunna göra någonting sånt här:

<code>
Dim sb As new StringBuilder()
textControl = LoadControl("text.ascx")

If Request.Querystring("val") = "1" Then
sb.Append("<div id='val1'>")
sb.Append(textControl)
sb.Append("</div>")
Else
sb.Append("<div id='val2'>")
sb.Append(textControl)
sb.Append("</div>")
End If

Dim strVal as String = sb.ToString()

text.Controls.Add(strVal)
</code>

Att man använder sig av en placeholder, som får olika egenskaper beroende vilket val man har gjort.

Jag fick det här felmeddelandet när jag testade:
Value of type 'String' cannot be converted to 'System.Web.UI.Control'.

Går det att fixa på nått sätt? Om inte, finns det någon annan funktion som är ungefär likadan som stringbuilder som man kan använda till det här?


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 00:29:23 - Thomas Vanhaniemi

Felet uppstår ju när du försöker sätta in en text som en kontroll...
Testa deklarera en label kontroll eller annat passande och sätt dess egenskap till texten du vill skriva ut.

Mvh,
Thomas


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 00:32:05 - Andreas Håkansson

Magnus,

Utöka med följande.

Dim MinTest As Literal
MinText.Text = strVal
text.Controls.Add(MinText)


En <b>Literal</b> representerar en kontrol som används för att visa helt vanlig text på en webbsida. Hoppas det löser sig.


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 01:38:03 - Magnus Jonsson

Okej, fick det här felmeddelandet när jag körde så där:
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

Line 40:
Line 41: Dim MinText As Literal
Line 42: MinText.Text = strVal
Line 43:
Line 44: tex.Controls.Add(MinText)



Testade att skriva as new Literal, då fungerade sidan. Fast där texten ska stå fick jag fram det är ASP.text_ascx.


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 08:54:19 - Andreas Håkansson

Magnus,

Hoppsan.. det underlättar om vi skapar objektet med, något som alla gör lite då och då . Kom nu ihåg att <i>Object reference not set to an instance of an object</i> betyder att du har en referensvariabel som inte pekar på något, dvs är <b>Nothing</b>, så vet du hur du löser det nästa gång.. =)

Dim MinTest As Literal = New Literal()
MinText.Text = strVal
text.Controls.Add(MinText)


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 13:18:15 - Magnus Jonsson

Blir likadant nu, där sidan ska visas står det ASP.text_aspx. Vad kan det bero på? Är det att den läser sidan som en text och inte som en sida?

All kod:
<code>
Protected WithEvents text As System.Web.UI.WebControls.PlaceHolder
private textControl As Control


Dim sb As new StringBuilder()
textControl = LoadControl("text.ascx")

If Request.Querystring("val") = "1" Then
sb.Append("<div id='val1'>")
sb.Append(textControl)
sb.Append("</div>")
Else
sb.Append("<div id='val2'>")
sb.Append(textControl)
sb.Append("</div>")
End If

Dim strVal as String = sb.ToString()

Dim MinText As Literal = New Literal()
MinText.Text = strVal

text.Controls.Add(MinText)
</code>


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 13:22:34 - Magnus Jonsson

Skumt, blev fel när jag skulle editera mitt inlägg. Så det blev någon slags dubbelpost av en del av inlägget i inlägget.

Så jag editerar här istället:

Blir likadant nu, där sidan ska visas står det ASP.text_aspx. Vad kan det bero på? Är det att den läser sidan som en text och inte som en sida?

Alltså Är det att den läser sidan som en text, tog bort inte framför :)

Edit: hmm ännu mera skumt, nu fungerar det visst :)


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 14:04:48 - Andreas Håkansson

Är det löst?


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 14:54:16 - Magnus Jonsson

Nä. Det står asp.text_aspx där sidan ska vara, verkar som att den inte vill skriva ut sidan utan bara filnamnet på sidan fast med någon modifiering, eftersom den heter text.aspx.


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 14:56:21 - Andreas Håkansson

Magnus,

Men du ska inte

text.Controls.Add(MinText)


vara

textControl.Controls.Add(MinText)


eftersom du laddar in din kontroll i en variabel som heter <b>textControl</b> ? =)


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 15:46:48 - Magnus Jonsson

Njae, så blir det väl inte? Har kanske fel nu men.
<code>
Protected WithEvents text As System.Web.UI.WebControls.PlaceHolder
private textControl As Control

Dim sb As new StringBuilder()
textControl = LoadControl("text.ascx")

If Request.Querystring("val") = "1" Then
sb.Append("<div id='val1'>")
sb.Append(textControl) 'här lägger jag inte textControl alltså sidan.
sb.Append("</div>")
Else
sb.Append("<div id='val2'>")
sb.Append(textControl) 'likaså här
sb.Append("</div>")
End If

Dim strVal as String = sb.ToString() 'då finns ju sidan inne i den här strängen

Dim MinText As Literal = New Literal()
MinText.Text = strVal

text.Controls.Add(MinText) 'text är ju namnet på placeholdern och
'den får infromationen som är i MinText.


</code>


Om jag ska ha textControl blir det ju knasigt, väl? Den är ju inte deklarerad som en placeholder.


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 15:48:45 - Andreas Håkansson

Magnus,

Ahh sorry.. självklart.. är jäkligt seg i skallen idag och vill bara att arbetsdagen skall ta slut.. kan inte se vad det är som spökar just nu.. får ta en titt med friska ögon sen..


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 19:36:56 - Fredrik Normén

Magnus:


Du kan inte lägga till en kontrol i en stringbuilder, om du gör det så anropas kontrollens ToString(), ToString() i det fallet blir namnet på kontrollen, det vill säga: ASP.text_aspx.

För att du ska kunna lägga till din kontrol på sidan så måste du göra det via Controls.Add.

Här är ett exemple, inte det snyggaste men slänge ihop något snabbt för att demonstrera vad jag pratar om:

<code>
Protected WithEvents text As System.Web.UI.WebControls.PlaceHolder
private textControl As Control
private myDiv As LiteralControl

Dim myId As String
textControl = LoadControl("text.ascx")

If Request.Querystring("val") = "1" Then
myId = "val1"
Else
myId = "val2"
End If

Dim myDiv As New LiteralControl("<div id='" & myId & "'>")
Dim myDiv2 As New LiteralControl("</div>")

text.Controls.Add(myDiv)
text.Controls.Add(textControl)
text.Controls.Add(myDiv2)
</code>

/Fredrik Normén NSQUARED2
http://fredrik.nsquared2.com


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 23:18:56 - Andreas Håkansson

Magnus,

Hmm ser nu att du försöker stoppa in en kontoll i din stringbuilder.. när du gör detta så stoppar du inte in kontrollen utan du stoppa in .ToString() representationen av det (troligen hela namnet med namespace) .. fokuserade mig på den sista biten och såg inte det tidigare när jag var trött i huvudet.. där har du ditt problem.


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-04 23:20:57 - Andreas Håkansson

Ojdå där hade redan fredrik varit framme.. slarv av mig att inte se att du svarat fredrik ;)


Svara

Sv: En fråga om stringbuilder.

Postades av 2004-08-06 13:08:59 - Magnus Jonsson

Tackar fungerade fintfint. Tack för all er hjälp!


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 168
27 952
271 704
943
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