Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    passaggio di immagine tra pagine .aspx

    Ciao a tutti,

    avrei bisogno di passare delle immagini tra pagine .aspx.

    Mi spiego meglio: ho una pagina, uploadimages.aspx, che visualizza delle thumnails (in

    formato .jpg) di immagini. Ciascuna thumbnail dev'essere un link ad un'altra pagina,

    query.aspx,nella quale in alto viene visualizzata la thumbnail e a fianco il nome del file e la

    dimensione. Funziona il link di ciascuna thumbnail alla pagina query.aspx ma non so come

    far visualizzare l'immagine sulla quale ho cliccato nella pagina uploadimages.aspx.

    Vi posto il codice che ho scritto per uploadimages.aspx e relatico file .cs:

    pagina uploadimages.aspx

    codice:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="uploadimages2.aspx.cs" Inherits="uploadimages2" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    
    
        <title>KingFisher - Query Demo</title>
        
        </head>
    <body bgcolor="#EAE9E1" text="#000000">
    
        <form id="form1" runat="server">
        <div align="center">
        <table border="0" cellpadding="0" cellspacing="0" width="600">
        <tr>
          <td width="198">[img]Grafica/logopiccolo.gif[/img]</td>
          <td width="398">
            <p align="right"><font face="Verdana" size="5">Query image selection</font></td>
        </tr>
        <tr>
          <td colspan="2" width="598">
            <hr>
            <font face="Verdana" size="2">Now you can choose a query image. You can
            choose it from your hard drive or select it from the samples below (this
            works faster).
    
            </font>
    
    		<form method="post" action="local_image.asp" name="form1" id="FORM2" encType=multipart/form-data >
            <p align="left"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Select 
            a query image from your Hard Drive (only bitmap or jpeg images):</font>
    
    		
    		
    	                    
                <asp:FileUpload ID="FileUpload1" runat="server" />
            
            
                 
                <asp:Button ID="Button1" runat="server" Text="Upload" OnClick="Button1_Click" 
                    onclientclick="Button1_Click" PostBackUrl="~/queryform.aspx"/>
    		<!-- il tag 
    
     identifica la creazione di un paragrafo -->
    		
    
    
                
     <asp:RegularExpressionValidator ID="FileUploadValidator" runat="server" 
        ErrorMessage="solo file .bmp, .jpg!" ValidationExpression=".+\.((jpg)|(bmp))$"
        ControlToValidate="FileUpload1">
        </asp:RegularExpressionValidator>
                
     <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
         ErrorMessage="Questo campo è da riempire" ControlToValidate="FileUpload1">
         </asp:RequiredFieldValidator>
                
                </p>
    		
    		</form>
            <center>
            </center>
    
           <p align="left"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Select 
              a query image from this random collection:</font>
               </p>  
             
               
            <hr noshade size="1" color="#808080">
      <div align="center">
      <center>
      
      
     <table border="0" cellpadding="0" cellspacing="0" width="600" style=" table-layout: fixed;">
    <tr>
    <td width="100" align="center">
    
         <asp:Literal ID="literal" runat="server"></asp:Literal>
         
                             </tr>       </table>
    
    
        </center>
      </div>
            <hr noshade size="1" color="#808080">
            
    
    <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Click <a href="showdbimages.aspx">HERE
            </a>if you want see all the images in the database.</font></p>
            
    
    
          </td>
          </tr>
        </table>
        
        </div>
        <div align="center">
      <table border="0" cellpadding="0" cellspacing="0" width="600">
        <tr>
          <td colspan="2" width="598">
    	  	
    
            <hr>
          </td>
        </tr>
        <tr>
          <td width="175"><font size="1" face="Verdana">KINGFISHER HOME PAGE</font></td>
        <td width="421">
          <p align="right"><font size="1" face="Verdana">DIBE</font></td>
      </tr>
      </table>
        </form>
    </body>
    </html>
    pagina uploadimages.aspx.cs

    codice:
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using MySql.Data.MySqlClient;
    using System.IO;
    using MySql.Data;
    
    public partial class uploadimages2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
            string a;
            string b;
            string b1;
            string b2;
            string c;
    
            MySql.Data.MySqlClient.MySqlConnection conn;
        
                  string myConnectionString =
            System.Configuration.ConfigurationManager.ConnectionStrings["db_connection"].ConnectionString;
    
    
            conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString);
            conn.Open();
    
         
            string sql = " SELECT * FROM images ORDER BY RAND() limit 12";
    
            MySqlCommand cmd = new MySqlCommand(sql, conn);
            MySqlDataReader rdr = cmd.ExecuteReader();
    
    
    
    
            while (rdr.Read())
            {
                //  Response.Write(rdr[0] + " -- " + rdr[1]);
    
                // converto in stringa il campo del database
                a = Convert.ToString(rdr["ImageName"]);
    
                //    Response.Write(Path.GetFileName(@a));
                b = Convert.ToString(Path.GetFileName(@a));
                //       Response.Write(Path.GetFileNameWithoutExtension(@a));
                b1 = Convert.ToString(Path.GetFileNameWithoutExtension(@a));
    
    
                // stampo sulla pagina il campo del database
              //  Response.Write(b1);
    
                //       Response.Write("<img src=\"images/minithumb/"+b1+".jpg\" />");
    
                //   Response.Write(rdr["ImageName"]);
                //Response.Write("<img src=\"" + rdr["ImageName"] + "\"/>");
    
    
    
    
           //     literal.Text = literal.Text + "<img border=0 vspace=0 src=\"images/minithumb/" + b1 + ".jpg\" />";
    
    
    
                literal.Text = literal.Text + "<a href=queryform.aspx target=_self>" 
                               + "<img border=0 vspace=0 src=\"images/minithumb/"
                               + b1 
                               + ".jpg\" />"
                               + "</a>";
                               
    
                              
    
            }
    
            rdr.Close();
            conn.Close();
            
    
    
    
        }
    Mi potete dare una mano?

    Grazie

  2. #2
    ciao!

    Se ho capito bene quello che vuoi fare, ti basterebbe usare il controllo <asp:ImageButton> e poi sull evento OnClick puoi salvarti in sessione l'url dell'immagine cosi te lo ritrovi nell'altra pagina e lo puoi usare nel page load per caricare l'immagine che ti serve

  3. #3
    Ciao,

    intanto grazie per aver risposto. Volevo chiedere il metodo che mi hai esposto va bene anche se

    ho più immagini come nel mio caso? In uploadimages vengono visualizzate usando un literal 12

    thumbnail casuali il cui url è estratto dal database (e manipolato per ottenere le thumbnail).

    Devo usare un controllo <asp:ImageButton> per ciascuna immagine?

    Lo chiedevo perchè poi ho anche una pagina in cui vengono visualizzate molte più thumbnail,

    anche centinaia.

  4. #4
    Si funzionerebbe anche con molte immagini ma pensandoci meglio...dovresti creare un controllo <asp:Repeater> e poi dentro questo mettere l'ImageButton in modo da caricare dinamicamente n immagini dal db....però dovresti stravolgere troppo il tuo codice.

    Un'altra soluzione potrebbe essere questa:

    nella form principale della tua pagina imposti il method su "post" sempre se non ci sia già dopodichè quando nel page load generi il tag <a> per creare il link nell url che inserisci in href ci aggiungi un parametro in cui metti il percorso dell'immagine, così cliccando sul link si porterà dietro il percorso che puoi recuperare nel page load dell'altra pagina facendo Request.Form["nome parametro"]

  5. #5
    per intenderci:

    alla fine creerai una cosa del genere:

    e nel page load di queryform.aspx avrai

    codice:
     IDControlloImage.ImageUrl =  Request.Form["src"].ToString();
    dove IDControlloImage sarà l'id di un controllo <asp:Image> che ti crei nella pagina

  6. #6
    Grazie,

    ho impostato il form di uploadimages.aspx su post e ho creato il controllo <asp:Image> nel

    pageload di queryform.aspx.cs, ma non riesco ad adattare al codice del literal che ho postato il

    codice da mettere nel file .cs di uploadimages.aspx:

    perchè io ricavo l'url delle varie immagini ogni volta come concatenazione di stringhe

    opportune, non posso dargli un url completo.

  7. #7
    bene io ho visto che nel tuo codice cs verso la fine ci sono queste righe di codice:

    codice:
    literal.Text = literal.Text + "<a href=queryform.aspx target=_self>" 
                               + "<img border=0 vspace=0 src=\"images/minithumb/"
                               + b1 
                               + ".jpg\" />"
                               + "</a>";
    quello che intendevo io era modificare questa parte cosi:

    codice:
    literal.Text = literal.Text + "<a href=\"queryform.aspx?src=images/minithumb/" + b1 + ".jpg\" target=_self>" 
                               + "<img border=0 vspace=0 src=\"images/minithumb/"
                               + b1 
                               + ".jpg\" />"
                               + "</a>";
    ma poi in nella pagina query form...tu vuoi vedere solo l'anteprima dell'immagine su cui hai cliccato giusto? Perchè se è cosi poi ti basta fare come detto prima: nel page load richiami Request.Form["src"] e ti ritrovi il percorso dell'immagine da poter usare

  8. #8
    Ciao,

    grazie per la precisazione, ho apportato la modifica ma mi dà un errore in queryform.aspx.cs

    alla riga che ho inserito nel pageload:

    codice:
    image.ImageUrl = Request.Form["src"].ToString();
    l'errore che mi dà visual studio è questo:

    System.NullReferenceException was unhandled by user code
    Message="Riferimento a un oggetto non impostato su un'istanza di oggetto."
    Source="App_Web_54slju8g"
    StackTrace:
    in queryform2.Page_Load(Object sender, EventArgs e) in c:\Users\Paul\Desktop\Sitotirocinio\queryform2.asp x.cs:riga 22
    in System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o, Object t, EventArgs e)
    in System.Web.Util.CalliEventHandlerDelegateProxy.Cal lback(Object sender, EventArgs e)
    in System.Web.UI.Control.OnLoad(EventArgs e)
    in System.Web.UI.Control.LoadRecursive()
    in System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
    InnerException:

    Secondo te come mai? Ho provato in diversi modi, nel dubbio ho anche ricreato una nuova

    pagina (ecco perchè nel nome c'è un 2 finale) e cancellato l'altra ma l'errore c'è sempre.

  9. #9
    prova con questi altri due metodi:

    codice:
    //Prima prova
    image.ImageUrl = Request.QueryString["src"].ToString();
    
    //Seconda Prova
    image.ImageUrl = Request["src"].ToString();
    intanto faccio qualche prova anche io

  10. #10
    ok prova il secondo metodo che funziona! Appena testato

    Spero di aver risolto il tuo problema ^^

    Buona giornata e buona programmazione!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.