Hej! Sofira, I kod nr ett : Sofia, Hej! Har du Visual Studio .Net? Då föredrar jag att du sätter all din kod i Code Behind filen. Hej Johan! Sofia du har fått en lösning på ditt problem, men hade du istället deklarerat variabeln OpenPage (i code-behind) så här istället hade det fungerat: Hej Peter! Shared ska du defenetivt inte ha iaf. Det är att alla instanser/icke instanser delar samma variabel. T.ex. kan samma sida köras av två olika användare samtidigt. OnkelborgVarför sätts inte variabeln???
Jag har en variabel som fångar upp värdet från en parameter i URLen (http://localhost/MyPage.aspx?ParamPage=Start)
dim OpenPage as string
Openpage = request.querystring("ParamPage").tostring()
Sen kommer själva sidan med html-kod.
När jag i denna htmlkod vill skriva ut värdet av min variabel OpenPage enligt nedan:
<%response.write("vald sida: " & request.querystring("OpenPage"))%> så är OpenPage tomt.
Skriver jag istället (som funkade i classic och som jag tror ska funka även i .net)
<%response.write("vald sida: " & OpenPage)%> så säger den "OpenPage is not declared".
Detta hade funkat perfekt i classic ASP, vad har ändrats i asp.net som gör att jag inte längre kan göra så här? Eller har jag gjort något fel?
Mvh,
SofiaSv: Varför sätts inte variabeln???
<code>
<%response.write("vald sida: " & request.querystring("OpenPage"))%> så är OpenPage tomt.
</code>
Hämtar du en query du en satt så den blir ju tom.
Sedan så är inte ASP3 samma som ASP .Net Du har helt plötsligt saker som scopes m.m. att hålla reda på. Vad jag kan ana är att din OpenPage är i ett annat Scope än från det scope du försöker hämta ut den.
<code>
<%response.write("vald sida: " & OpenPage)%> så säger den "OpenPage is not declared".
</code>
Detta är en ren gissning då jag inte har all din kod, själv har jag heller aldrig byggt på detta sätt i ASP .Net då det inte direkt faller i dess ram hur man bör bygga. Fast det beror på on du kör inlinekode eller code behind med VS .Net?
Kan du förklara mera? eller kanske skicka med koden för hela sidan?
Mvh JohanSv: Varför sätts inte variabeln???
Du kan inte komma åt en variabel (OpenPage) i från QueryString.. QueryString är det som kommer med i adressen till sidan. Vill du skriva ut variabeln så får du göra
<%# OpenPage %>
Sv: Varför sätts inte variabeln???
Jag är ny på asp.net (som ni säkert förstår...) och sitter och försöker bygga enkla sidor och lära mig vad som är nytt på en basic nivå.
Detta är ju en sak som jag upptäckt...
Bifogar koden för hela sidan, du får gärna föreslå hur du skulle löst det och hur det är meningen att man ska göra i .net.
Stort tack!
<%@ register TagPrefix="RightAdControl" TagName="Ad" src="RightSideControl.ascx"%>
<%@ register TagPrefix="MenuControl" TagName="Menu" src="MenuControl.ascx"%>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="starter.aspx.vb" Inherits="LankaVidare.starter"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>starter</title>
<LINK href="MenuStyle.css" type="text/css" rel="stylesheet">
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body bottomMargin="0" leftMargin="0" topMargin="0" rightMargin="0" MS_POSITIONING="GridLayout">
<%
dim OpenPage as string
Openpage = request.querystring("paramPage").tostring()
%>
<form id="Form1" method="post" runat="server">
<table height="100%" cellSpacing="0" cellPadding="0" width="1000" border="0">
<tr height="70">
<td class="menustyle.css" width="900" bgColor="#ff3333" colSpan="3" style="HEIGHT: 122px">
<MENUCONTROL:MENU id="Menu" runat="server" CurrentBanner="starter" height="160">
</MENUCONTROL:MENU></td>
<td bgColor="#ff3333" rowSpan="2"><RIGHTADCONTROL:AD id="Ad" runat="server" currentRightAd="starter"></RIGHTADCONTROL:AD></td>
</tr>
<tr>
<td width="3%" bgColor="#ff3333">
</td>
<td class="menuStyle.css" vAlign="top" width="15%" bgColor="#ff3333" align="right">
<P><BR>
<asp:hyperlink id="HyperLink2" Font-Bold="True" runat="server" NavigateUrl="starter.aspx?ParamPage=Flyg" CssClass="menustyle.css">flyg</asp:hyperlink>
<p>
<asp:hyperlink id="HyperLink3" Font-Bold="True" runat="server" NavigateUrl="starter.aspx?ParamPage=Hotell" ForeColor="Moccasin">hotell</asp:hyperlink>
<p>
<%response.write("vald sida: " & OpenPage)%>
</td>
</tr>
</table>
</form>
</body>
</HTML>Sv: Varför sätts inte variabeln???
För då underlättar det att ge dig lite start tips.
Mvh JohanSv: Varför sätts inte variabeln???
Där du gör <% Response.Write..... %>
Lägger du till en control istället. Label.
<code>
<asp:label id="MinLabel" runat="server"/>
'I din codebehind under metoden Page_Load kan du exempelvis skriva.
MinLabel.Text = Request.QueryString(något) ...
</code>
När du då kör sidan kommer din <asp:Label...> att bli en vanlig <DIV> med texten från Queryn </DIV>
Mitt råd till dig är att du tar en titt på Qucik Statern, du installerar denna genom
start/Program/Framwork SDK ... /Turturial & Sampels något...
Där hittar du en del nyheter för just ASP .Net lek lite med dem så kommer du snabbt få en bättre kontroll över skillnaderna.
Någon bok typ Introduction to ASP .Net hade ju inte heller vart fel.
Mvh JohanSv: Varför sätts inte variabeln???
Stort tack för din hjälp!
Jag har skummat igenom en del text om vad som är nytt i asp.net men det är en hel del som missats också.
Hur som helst ska jag genast prova detta! Ett kunskap mer... :-)
Mvh,
SofiaSv: Varför sätts inte variabeln???
Public Shared OpenPage as String
"Public Shared" behövs för att den ska vara tillgänglig i aspx-filen
/PeterSv: Varför sätts inte variabeln???
Det var mer likt den lösningen jag egentligen var ute efter!
Nu har jag två varianter!
Tack båda två!
SOfiaSv: Varför sätts inte variabeln???
1) anv 1 ändrar variabeln
2) anv 2 ändrar variabeln
3) anv 1 skriver ut variabel
4) anv 2 skriver ut variabeln
som du ser så blir det knäppt där..
ska räcka med
1) protected
2) friend
3) publicSv: Varför sätts inte variabeln???
Ok, håller med om att i det här fallet är det fel med Shared.
Men det finns andra fall där det är bra att dela variabler.
/Peter