PMedlem sedan jan. 20012 204 inlägg De sidor jag har gjort i aspdotnet hittills har jag använt mig av webmatrix och lagt min kod i dess ”KodFlik” dvs att koden kommer inom <script></script>. Sen har jag importerat klasser som jag har gjort som har hand om Databas-hanteringen genom ”import namespace”.
Det jag undrar om det är bästa att ha koden helt i separata filer och på det sättet skilja den från designen eller?
Om man importerar med
<%@ Page Language="VB" Src="KlassFilen.vb" Inherits="Klassen" %>
Kan man då använda samma som man använde kod i <script> eller måste man göra om någonting?
PMedlem sedan jan. 20012 204 inlägg i princip?
såg på asp.net ibuyportal eller vad den heter och de har en del kod i <script>...
När du lägger det i CodeBehind så kan du komma åt dom funktionerna som ligger i den filen till alla aspx filer.
Du kan lätt ändra om på din andra design sida, Men ja det är ju också en smaksak hur man vill göra.
Alltid code-behind. Jag ser ingen anledning till att inte använda det.
PMedlem sedan jan. 20012 204 inlägg Kan ju vara bra om man ska publicera den på intranat eller dylikt så att man inte kan se själva koden...
Hmm ska testa att installera visual studio.
Finns det någon här som använder code-behind(Src) utan visual studio och har all kod i externa filer?
renholmMedlem sedan apr. 20012 266 inlägg
P skrev:
Kan ju vara bra om man ska publicera den på intranat eller dylikt så att man inte kan se själva koden...
Koden brukar kunna läsas från dll-filerna utan problem, det ända är att namnen på variablerna inte är sig lika.
PMedlem sedan jan. 20012 204 inlägg Pace - skriver du ingen kod i <script>?
PaceMedlem sedan juni 20019 024 inlägg Nej, förutom på:
* Sidor där det inte finns något innehåll (ska bara utföra vissa saker). Då kan jag skriva direkt i aspx-sidan. Men det har bara hänt en gång så länge, och är lite beroende på vad den ska åstadkomma. Aspx-koden (logiken ligger i ett eget namespace):
Sub Page_Load(obj As Object, e As EventArgs)
Dim BannerID As String = Request.QueryString("BannerID")
Dim Direction As String = Request.QueryString("Dir")
Dim ArticleID As String = Request.QueryString("ArticleID")
Dim NewsID As String = Request.QueryString("NewsID")
Dim FaqID As String = Request.QueryString("FaqID")
Dim LinkID As String = Request.QueryString("LinkID")
Dim Action As String = Request.QueryString("Action")
Dim RedirectUrl As String
Dim Sql As VoodooFilm.Data.SqlInjection
Dim Redirect As New VoodooFilm.SiteFunctions.ContentRedirect
If Sql.VerifyID(ArticleID) Then
RedirectUrl = Redirect.Article(ArticleID)
ElseIf Sql.VerifyID(LinkID) Then
RedirectUrl = Redirect.Link(LinkID)
ElseIf Sql.VerifyID(BannerID) Then
Select Case Direction.ToLower()
Case "out" : Direction = Redirect.BannerOut
Case Else : Direction = Redirect.BannerIn
End Select
RedirectUrl = Redirect.Banner(BannerID, Direction)
Else
RedirectUrl = "/"
End If
'Response.Redirect(RedirectUrl)
Response.Write("Url: " & RedirectUrl)
End Sub
* Pagelets (user controls). Den koden skriver jag alltid inom <script> så länge det rör sig om properties som sätter värden (t ex labels) i pageleten. Skulle den behöva hämta data från en databas så lägger jag det separat i ett eget namespace, men jag har inte behövt det än så länge.
PMedlem sedan jan. 20012 204 inlägg Okej, har inte kllat så mycket på det men jag har lite problem med att få det att fungera.
I aspx sidan har jag lite text, lablar, datgrids etc
Om jag importerar med:
<%@ Page Language="VB" Src="KlassFilen.vb" Inherits="page1" %>
Sköts då alla subbar/funktioner av denna klass, typ såhär.
Public Class page1
Inherits Page ' vad nu detta betyder
Sub Page_Load(obj As Object, e As EventArgs)
' tex hur sätter jag ett värde på en label som jag har på sidan?
label1.Text = "Jag gillar film!"
End Sub
End Class
Känns nästan som om det är mer jobb än vad det ger....
PaceMedlem sedan juni 20019 024 inlägg Ja, så gör man.
Dessutom måste du deklarera alla labels, repeaters etc som publika variabler för att klassen ska komma åt dem.
Public Class page1 : Inherits Page
Public label1 As Label
...
Inherits Page betyder att man ärver klassen System.Web.Page (tror jag det är), vilket är själva sidan. Aspx-sidorna ärver denna automatiskt.