Avatar billede connor Nybegynder
19. september 2003 - 09:46 Der er 13 kommentarer og
1 løsning

Medtage parameter fra hovedside.

Jeg har en fil: getimage.aspx som bruges til at hente et billede ud af databasen. I denne fil vil jeg garne kunne bruge en parameter som kommer med fra hovedsiden.

På hovedsiden indlæser jeg billeder på denne måde:
<img src=getimage.aspx ....>

Jeg forestiller mig at jeg kunne angive en parameter til hovedsiden f.eks:
http://minside.dk/side.aspx?pageID=2

Denne pageID vil jeg gerne kunne bruge i filen getimage.aspx
Men hvordan kan jeg gøre således at jeg kan det?


Har lige opdaget et problem:
Jeg vil gerne i filen: getimage.aspx bruge en medtaget parameter fra hovedssiden
Avatar billede medions Nybegynder
19. september 2003 - 09:48 #1
<%
  Response.Write(Request.QueryString("pageID"))
%>

//>Rune
Avatar billede medions Nybegynder
19. september 2003 - 09:49 #2
Ellers er det:

<%
  Response.Write(Request.QueryString["pageID"]);
%>

//>Rune
Avatar billede connor Nybegynder
19. september 2003 - 09:52 #3
>> medions
Men giver dette ikke bare en udskrivning?

Jeg ville gerne kunne bruge variablen i filen getimage.aspx
Avatar billede medions Nybegynder
19. september 2003 - 09:53 #4
<%

%>
Avatar billede medions Nybegynder
19. september 2003 - 09:54 #5
Hov.. Sådan her: :-)

<%
  String PageID = Request.QueryString["pageID"].ToString();
%>

//>Rune
Avatar billede medions Nybegynder
19. september 2003 - 09:54 #6
Hov... :

<%
  string PageID = Request.QueryString["pageID"].ToString();
%>

//>Rune
Avatar billede connor Nybegynder
19. september 2003 - 09:58 #7
Jeg har allerede dette i getimage.aspx's page_load:

int pageID;
            if ( Request.QueryString["pageID"] != null ) {
                pageID = int.Parse( Request.QueryString["pageID"] );
                }
            else { pageID = 1; }

Men det giver altid 1.
Også selvom jeg skriver: side.aspx?pageID=2

Det virker som om at når jeg sætter et billede ind ved brug af filen getimage.aspx, så følger variablen: pageID ikke med og det kan jeg ikke forstå...
Avatar billede erve Nybegynder
19. september 2003 - 10:20 #8
Der er også andre metoder til parameteroverførsel melem webforms, hvis man ønsker at undgå URL-parametre eller session-variable.
Se f.eks ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1033/cpguide/html/cpconpassingservercontrolvaluesbetweenpages.htm
Avatar billede medions Nybegynder
19. september 2003 - 10:22 #9
Hm så prøv sådan her:

int pageID;
            if ( Request.QueryString["pageID"] != '' ) {
                pageID = int.Parse( Request.QueryString["pageID"] );
                }
            else { pageID = 1; }

Eller sådan her:

int pageID;
            if ( Request.QueryString["pageID"].length == 0 ) {
                pageID = int.Parse( Request.QueryString["pageID"] );
                }
            else { pageID = 1; }

//>Rune
Avatar billede connor Nybegynder
19. september 2003 - 10:46 #10
Det virker ikke... poster lige hele koden:

billede.aspx: (vil jeg gerne kunne skrive: billede.aspx?pageID=5)
<%@ Page Language="C#" %>
<script runat="server">

    // Insert page code here
    //

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <asp:Image id="Image1" runat="server" Width="217px" Height="195px"></asp:Image>
        <!-- Insert content here -->

    </form>
    <br />
    <br />
    <img style="WIDTH: 553px; HEIGHT: 261px" height="81" src="getimage.aspx" width="553" />
</body>
</html>
--------------------------------------------------------------------------
getimage.aspx:

<%@ Page Language="C#" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">

    // Insert page code here
    //

    void Page_Load(object sender, EventArgs e) {


          int pageID;
            if ( Request.QueryString["pageID"] != null ) {
                pageID = int.Parse( Request.QueryString["pageID"] );
                }
            else { pageID = 1; }


                string SQL = "SELECT * FROM tblFile WHERE FileID ="+ pageID+";";

                // Create Connection object
                OleDbConnection dbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("FileUpload.mdb") + ";");

                // Create Command Object
                OleDbCommand dbComm = new OleDbCommand(SQL, dbConn);

                // Open Connection
                dbConn.Open();

                // Execute command and receive DataReader
                OleDbDataReader dbRead = dbComm.ExecuteReader();

                // Read row
                dbRead.Read();

                // Clear Response buffer
                Response.Clear();

                // Set ContentType to the ContentType of our file
                Response.ContentType = (string)dbRead["ContentType"];

                // Write data out of database into Output Stream
                Response.OutputStream.Write((byte[])dbRead["FileData"], 0, (int)dbRead["FileSize"]);

                // Close database connection
                dbConn.Close();

                // End the page
                Response.End();




    }

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <!-- Insert content here -->
    </form>
</body>
</html>
Avatar billede connor Nybegynder
25. september 2003 - 09:59 #11
Har løst problemmet nu!
Avatar billede medions Nybegynder
25. september 2003 - 12:43 #12
Hvad var der så galt?

//>Rune
Avatar billede connor Nybegynder
25. september 2003 - 13:20 #13
Jeg løste det på en anden måde....
Oprettede en session på hovedsiden, som så filen getimage.aspx kan bruge og vælge billede...

Måske findes der en anden løsning, men pt. virker dette fint...
Avatar billede erve Nybegynder
26. september 2003 - 18:45 #14
Bare vær opmærksom på at sessions, bruger memory på serveren. Hvis man anvender server.transfer og referer hovedsiden kan man tilgå properties fra kladende side.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester