Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > ASP.NET 1.x och 2.x > Språk - C#

Variabel överföring mellan kodavsnitten

dimman
dimman

Gradering

#15652

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

 

ID: #15652 | Skapades: 2009-05-05 23:41:25 | Tråden har 5 svar och har lästs 360 gånger.

voigtan
voigtan

Gradering

#15653

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;

Om du väljer att ha variablerna i aspx filen så kommer du ändå åt variablen i codebehind filen, börja att skriv namnen på din variabel och tryck ctrl+mellanslag för att få upp en intelisense, vilket ger dig en snabbare utveckling.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15653 | Skapades: 2009-05-06 06:44:09

dimman
dimman

Gradering

#15657

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

ID: #15657 | Skapades: 2009-05-06 16:13:34

voigtan
voigtan

Gradering

#15659

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

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15659 | Skapades: 2009-05-06 16:17:44

dimman
dimman

Gradering

#15660

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

ID: #15660 | Skapades: 2009-05-06 16:23:56

voigtan
voigtan

Gradering

#15661

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   "'";
och även detta är ett sämmre sätt att skriva en SQL fråga, du kan använda parameters för att skriva säkrare SQL frågor.

 

redigerad: aspkoll verkar ta bort från strängarna, men mellan In_Invnr skall det vara mellan ordet.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15661 | Skapades: 2009-05-06 16:37:08
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy