tobieMedlem sedan juli 200515 inlägg hejsan!
som den stolta nybörjare jag är skäms jag inte över att totalt spamma sönder den stackars databasen med frågor som en helt vanlig svensson kanske skulle kunna, synd bara att man heter lindgren och inte svensson.
hur som helst. jag pratade med herr m_soderlund (my referer ;)) ang. hans sidsystem på dileno.com .
då fick jag följande kod / svar:
I default.aspx har jag en s.k. PlaceHolder, vi säger att den heter ph.
<asp:placeholder id="ph" runat="server" />
I en codebehindfil till default.aspx kör jag sedan denna kod:
dim x as integer = cInt(request.querystring("CatId"))
select case x
case 1
ph.Controls.Add("usercontrol1.ascx")
case 2
ph.Controls.Add("usercontrol2.ascx")
'etc etc.
end select
på detta har jag några följdfrågor (jag frågar här, han hänvisade hit:))
- vad är en såkallad "codebehind" fil? hur fungerar den? var kan jag läsa mer om den?
- fungerar ph.Controls.Add("usercontrol2.ascx") ungefär som PHP's include('usercontrol2.php'); ??
- varför har han .ascx när ASP.NET skall sparas som .aspx?
tack för er hjälp : )
fredrikMedlem sedan dec. 19991 072 inlägg Hej,
Då dina frågor bygger på några av de mest grundläggande sakerna i ASP.NET så föreslår jag att du börjar med att mala igenom alla exempel på:
http://samples.gotdotnet.com/quickstart/aspplus/
Där hittar du garanterat svaret på dina frågor! :)
tobieMedlem sedan juli 200515 inlägg ok, tack!:)
läste igenom lite, kan inte påstå att jag förstod allt (vilket jag märkte nu när jag försökte mig på ett eget page-script.)..
får "Runtime error", kan inte förstå varför (eftersom att jag inte kan .net så bra, ÄN;)).
default.aspx:
<%@ Page Language="VB" Inherits="PageIncluder" Src="include.vb" %>
<html>
<head>
<title>start | tobie.se</title>
</head>
<body>
<center>
<p>
<a href="default.aspx?pageId=1">ett</a> | <a href="default.aspx?pageId=2">två</a>
</p>
<p>
<asp:placeholder id="ph" runat="server" />
</p>
</center>
</body>
</html>
include.vb:
Option Strict Off
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Public Class PageIncluder : Inherits Page
dim x as integer = cInt(request.querystring("pageId"))
select case x
case 1
ph.Controls.Add("test1.ascx")
case 2
ph.Controls.Add("test2.ascx")
'etc etc.
end select
End Class
:(
Kör du visual studio.net ?
tobieMedlem sedan juli 200515 inlägg eh
jag skriver allt i notepad:)
tobieMedlem sedan juli 200515 inlägg har ändrat lite, men det strulat ändå. fast nu har jag fått med lite errors iaf..
---- ERRORS ----
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30451: Name 'Request' is not declared.
Source Error:
Line 7: Protected Withevents ph as PlaceHolder
Line 8: Sub Page_Load()
Line 9: dim x as integer = cInt(Request.QueryString("pageId"))
Line 10: select case x
Line 11: case 1
---- END ERRORS ----
---- INCLUDE.VB ----
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Public Class PageIncluder
Protected Withevents ph as PlaceHolder
Sub Page_Load()
dim x as integer = cInt(Request.QueryString("pageId"))
select case x
case 1
ph.Controls.Add("test1.ascx")
case 2
ph.Controls.Add("test2.ascx")
'etc etc.
end select
End Sub
End Class
---- END INCLUDE.VB ----
---- DEFAULT.ASPX ----
<%@ Page Language="VB" Inherits="PageIncluder" Src="include.vb" %>
<html>
<head>
<title>start | tobie.se</title>
</head>
<body>
\<center\>
\<p\>
\<a href="default.aspx?pageId=1"\>ett\</a\> \| \<a href="default.aspx?pageId=2"\>två\</a\>
\</p\>
\<p\>
\<asp:placeholder id="ph" runat="server" /\>
\</p\>
\</center\>
</body>
</html>
---- END DEFAULT.ASPX ----
testa:
Line 9: dim x as integer = cInt(**page.**Request.QueryString("pageId"))
..eller..
Line 9: dim x as integer = cInt(**me.**Request.QueryString("pageId"))
btw; du ska ha en eloge att som nybörjare koda .net i notepad!
ändra
Public Class PageIncluder
till
Public Class PageIncluder
Inhertis System.Web.UI.Page
tobieMedlem sedan juli 200515 inlägg :)
tack så hemskt för era svar, fast dock ploppade ett nytt felmess upp:
Compiler Error Message: BC30456: 'Request' is not a member of 'PageIncluder'.
Source Error:
Line 9: Protected Withevents ph as PlaceHolder
Line 10: Sub Page_Load()
Line 11: dim x as integer = cInt(me.Request.QueryString("pageId"))
Line 12: select case x
Line 13: case 1
Source File: tobie.se\public_html\include.vb Line: 11
se: http://www.tobie.se/default2.aspx
include.vb:
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.Page
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Public Class PageIncluder
' : Inhertis System.Web.UI.Page
Protected Withevents ph as PlaceHolder
Sub Page_Load()
dim x as integer = cInt(me.Request.QueryString("pageId"))
select case x
case 1
ph.Controls.Add("test1.ascx")
case 2
ph.Controls.Add("test2.ascx")
'etc etc.
end select
End Sub
End Class
Du ska inte skriva "me" när du har import på system.web.ui.page (för "request" ligger under "page")
tobieMedlem sedan juli 200515 inlägg ok!
du är schysst, snällt att du hjälper!:)
men.:(
error:
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30469: Reference to a non-shared member requires an object reference.
Source Error:
Line 10: Protected Withevents ph as PlaceHolder
Line 11: Sub Page_Load()
Line 12: dim x as integer = cInt(Request.QueryString("pageId"))
Line 13: select case x
Line 14: case 1
Source File: tobie.se\public_html\include.vb Line: 12
tobieMedlem sedan juli 200515 inlägg är det ingen annan som har ett liknande script då?
som jag kan "få"? :/
tobieMedlem sedan juli 200515 inlägg sååå!
äntligen har det löst sig
fick hjälp utan sälen (på http://sealstudio.net) via msn och nu löste det sig toppen
- spara include.vb som include.aspx.vb
- ändra koden till:
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.Page
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Public Class PageIncluder : Inherits Page
' : Inhertis System.Web.UI.Page
Protected Withevents ph as PlaceHolder
Sub Page_Load()
dim ctrControl as Control
dim x as integer = cInt(Request.QueryString("pageId"))
select case x
case 1
ctrControl = CType(LoadControl("test1.ascx"), Control)
case 2
ctrControl = CType(LoadControl("test2.ascx"), Control)
case else
ctrControl = CType(LoadControl("test1.ascx"), Control)
'etc etc.
end select
ph.Controls.Add(ctrControl)
End Sub
End Class
- ändra default.aspx placeholder namnet till ph, inte page:)
allt klart!