Hallå du kan köra findcontroll , men det är snyggare och smidigare att exponera din kontroll via en property i masterpage <b>Jag vet att inte Access är det optimala då man skall använda sig av text eftersom fältlängen inte kan överstiga 255 tecken</b> Tusen tack för det Tipset Johan! Du får köra en replace på VBCrlf och ersätta det med <br> så får du med de radbrytningar man lägger in själv. Annars är det lite mer meckande med javascript och räkna tecken + kolla att man inte bryter mitt i ett ord. Hej igen Andreas! [citerat Thomas Karlsson Medlem:15149 [Master Page]#268247] Tack för ruskigt sanbbt svar Oskar..=) Jag har haft min Property i code behind hela tiden. Men som sagt jag kommer inte åt min Repeater iaf?? Hej Thomas, som Oskar sa så tror sidan att din masterpage är av en vanlig masterpage och du måste casta ditt parent object till typen av din masterpage. Detta kan du göra genom "Ctype" eller "DirectCast" som du kan använda typ så här : Ctype(Page.Parent, MyMasterpage), Först skriver du vilket objekt du vill påverka och sedan vilken typ du vill catsta den till. Hej Jo, om man skapar en masterpage typ så här: HallåMaster Page
Jag har laborerat lite med MasterPage och har nu stött på ett litet problem.
Jag har som sagt en MasterPage och underliggande sidor, inget konstigt. På min MasterPage har jag en repeater som håller "Senaste Nytt". Och det är här jag inte vet hur jag skall lösa det.
Då användaren går till "sin sida" så skall möjligheten finns att lägga upp en nyhet. Då han/hon gjort detta så vill jag att min repeater på min MasterPage uppdateras efter inlägg. Hur bär jag mig åt?
Jag har sett attt det finns Master.FindControl och borde väl kunna använda mig av denna .Men hur uppdaterar jag min repeater? Repeatern hämtar Datum och Rubrik (till själva nyheten) från en Accessdatabas. Jag vet att inte Access är det optimala då man skall använda sig av text eftersom fältlängen inte kan överstiga 255 tecken, men det är en annan historia..=)
Tror inte att jag behöver slänga med någon kod utan jag är som sagt nyfiken på hur jag kommer åt en kontroll på min MasterPage och binder/uppdaterar den!
Tack på förhand.
Mvh,
ThomasSv: Master Page
pseudo kod:
i masterpage lägger du in en property som returnerar din repeater.
Public ReadOnly Property MinRepeater() As Repeater
Get
Return myRepeater
End Get
End Property
och i din sida kan du sedan göra:
Master.MinRepeater.datasource = nyttdata;
Master.MinRepeater.databind();Sv: Master Page
Det går om du använder datatypen Memo/PM.
/JohanSv:Master Page
Som du märker så är jag inte så insatt i datatyper...=) Jag har altrid använt mig av Text då jag har bahandlat just text i text textboxar etc.
Gjorde ett litet test och det finkar fin fint att ta emot text över 255 texken vilket glädjer mig! En sak och mer risk för att tappa tråden...i det test jag gjorde så la jag bara in text rakt upp och ner. Detta resulterade att texten presenterades som en stor klump.
Finns det något sätt att få med tex radbrytning osv..?
Mvh,
ThomasSv: Master Page
Sv:Master Page
Nu har jag provat med att skapa en property under min Master.
Dock så kommer jag inte med punktnotation åt min Reapeater på min Master? Är det något som jag missat? För precis som du säger så verkar property vara bra mycket smidigare.
Jag använder mig av snarlik teknik då jag ställer frågor mot den databas jag jobbar med (se gärna artikel www.pellesoft.se/area/articles/article.aspx?artid=1048 ) Så jag skulle gärna vilja att detta funkade.
Tack på förhand.
Mvh,
ThomasSv: Master Page
<citat>
Dock så kommer jag inte med punktnotation åt min Reapeater på min Master? Är det något som jag missat? För precis som du säger så verkar property vara bra mycket smidigare.
</citat>
Du måste casta propertyn för Masterpagen till den klass som innehåller din property, dvs. något i stil med:
masterpageklass minmasterpage=this.Masterpage as masterpageklass;
eller vad nu egenskaperna heter, men, men, det där är principen iafSv:Master Page
Dock är jag lite osäker på vad du menar...Är det så att jag måste skapa en klass eller kan jag ha min property i code behind på min Master?
Jätte tacksam för fler tips alt. någon bra länk som tar upp detta.
Som sagt, tack för snabb info!
Mvh,
ThomasSv:Master Page
MVH,
ThomasSv: Master Page
Sv:Master Page
Ok, så det är Ctype som gäller! Dock är jag lite osäker på det trots din förklaring.
Jag är med på att jag under min Master har min Property som jag vill komma åt i en undersida. Skulle du kunna ge något mer exempel?
Skriver ner hur mina sidor ser ut:
MasterPage.master.vb
Public ReadOnly Property MinRepeater() As Repeater
Get
Return MyRepeater
End Get
End Property
addnews.aspx.vb
Protected Sub btnAddNews_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddNews.Click
Dim User = Session.Item("AnvandarNamn")
Dim Shortmess = txtHeadline.Text
Dim News = txtBody.Text
Dim DateNow = Date.Now.ToString
'Insert object
Dim objMess As New cMembers
objMess.InsertNews(User, News, Shortmess, DateNow)
'Och här vill jag ha en uppdatering av den Repeater som finns på MasterPage.
'Givetvis för att användaren skall se sin nyinlagda nyhet
End Sub
Tack på förhand.
Mvh,
Thomas
Sv: Master Page
Partial Class MyMasterPage
Inherits System.Web.UI.MasterPage
Public ReadOnly Property Repeater() As Repeater
Get
Return MyRepeater
End Get
End Property
End Class
Så kan man i pagen som öppnas i masterpagen gör så här t.ex.
Partial Class Default2
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim rep As Repeater = CType(Parent, MyMasterPage).Repeater
End Sub
End Class
Nu så pekar rep referensen till repeatern som ligger på masterpagen :)
Du kan testa detta men tror tyvärr inte att det kommer att fungera, har för mig att masterpage objektet inte är skapat när sidans kod körs. Men du har lite andra alternativ som att helt enkelt ladda om sidan alltså redirecta den till sig själv, eller så kan du skapa din egna event som är lite jobbigare men kommer nog fungera.Sv:Master Page
Får banne mig inte till det med Property...!!
Fick bli denna lösning:
addnews.aspx.vb
Protected Sub btnAddNews_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddNews.Click
Dim User = Session.Item("AnvandarNamn")
Dim Shortmess = txtHeadline.Text
Dim News = txtBody.Text
Dim DateNow = Date.Now.ToString
Dim objMess As New cMembers
objMess.InsertNews(User, News, Shortmess, DateNow)
Dim Repeater As Repeater
Repeater = CType(Master.FindControl("MyRepeater"), Repeater)
Dim objMessage As New cMessage
objMessage.GetAllNews()
Repeater.DataSource = objMessage.ds
Repeater.DataBind()
Repeater.Dispose()
End Sub
Rätt eller fel?! Inte den snyggaste lösningen men nu uppdateras min Repeater efter inlägg och det vaar det jag ville åstakomma.
Tack alla för er hjälp!!
Mvh,
Thomas