Forum > ASP.NET 1.x och 2.x > Språk - C#
Hej !
Skulle gärna vilja fråga er om variabel överföring i ASP.NET och C#.
Vad jag förstår, så kan man programmera i 3 sektioner i ASP.NET.
1. Mellan <%... sektionen man kan skriva vanlig C# kod ... %>
2. <asp:?? egenskaper och metoder />.... </asp:??>
3. I kod bakom där man kan skriva fullkodning i C# med egna klasser och metoder.
Min enkla frågan här är:
Vilka sätt är enklast att använda när man vill överförra variabler mellan sektionerna?
<% string namn="Kalle"; .... %>
<asp:Label Text=[Här vill jag att kalle skall komma] .... />
I en metod i koden bakom
{
string namn_igen = [Här vill jag att kalle skall komma];
}
Vidare kan man generelt tänka sig , att man vill överföra variabeldata från en valfre sektion till dem andra 2.
Hur gör man då?
Tack!
MVH
du kan använda dig av variablen "namn" i codebehind filen, men om du skall använda dig av värden och variabler så kör allt det i codebehind filen.
För att få det i en aspkontroll (asp:label) så gör du det i antingen i klassiska asp brackets (vilket är en ful lösning enligt mig).
en asp kontroll behöver ett ID för att du skall kunna arbeta med den på ett enkelt sätt:
<asp:label runat="server" id="labelName" />och i din codebehind fil:
string name = "Kalle";
labelName.Text = name;
Tack!
Jag tänkte närmast på följande situation:
<%
string Action = Request.QueryString["Action"];
string In_Invnr = Request.QueryString["Inv"];
%>
Längre ned i samma fil finns följande asp-kontroll för databaskoppling.
<asp:AccessDataSource ID="Inventarier" runat="server" DataFile="testa_db.mdb"
SelectCommand="SELECT * FROM Inventarier where invnr='<%#In_Invnr%>'">
</asp:AccessDataSource>
Jag skulle vilja att data i variablen In_invnr som jag hämtade med Request.QueryString["Inv"];
hamnar i SQL-konstruktionen i asp-kontrollen.
Hur skulle jag kunna göra för att fixa det?
Tacksam för hjölp.
/D
Använd Codebehind för detta! Om du nu skall gå ifrån klassisk ASP så glöm allt mer eller mindre inom ASP, du kommer åt alla "runat server" i en codebehind fil.
aspx = html och asp kontroller
aspx.cs = all kod som behövs för att fylla kontrollerna
Tack för svaret!
Jag tänkte närmast på följande situation:
<%
string Action = Request.QueryString["Action"];
string In_Invnr = Request.QueryString["Inv"];
%>
Längre ned i samma fil finns följande asp-kontroll för databaskoppling.
<asp:AccessDataSource ID="Inventarier" runat="server" DataFile="testa_db.mdb"
SelectCommand="SELECT * FROM Inventarier where invnr='<%#In_Invnr%>'">
</asp:AccessDataSource>
Jag skulle vilja att data i variablen In_invnr som jag hämtade med Request.QueryString["Inv"];
hamnar i SQL-konstruktionen i asp-kontrollen.
Hur skulle jag kunna göra för att fixa det?
Tacksam för hjölp.
/D
Fortfarande: allt du skriver skall vara i Codebehind filen. Och SelectCommand ser helt fel ut, även i klassisk ASP gick inte det så.
Lägg dina variabler i codebehind filen, anropar din accessDatasource (som har ID inventarier), säg vad den skall ha för datafil i din codebehind, och selectCommand.
String sql = "SELECT * FROM Inventarier WHERE invnr='" In_Invnr "'";
redigerad: aspkoll verkar ta bort från strängarna, men mellan In_Invnr skall det vara mellan ordet.