Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

CrossPagePostBack

Îåêßíçóå áðü ôï ìÝëïò xakou. Τελευταία δημοσίευση από το μέλος xakou στις 08-03-2009, 17:03. Υπάρχουν 12 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  04-03-2009, 13:49 48883

    CrossPagePostBack

    Καλησπέρα,

    στο αρχείο add2.aspx έχω τον παρακάτω κώδικα:

    <asp:Label ID="LabelKATW" runat="server" Font-Bold="True"

    style="text-align: center"></asp:Label>

     

    στο αρχείο add2.aspx.vb έχω:

    Partial Class Target

    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    'Use IsCrossPagePostBack to determine if a postback occurred from the source page.

    If Me.PreviousPage.IsCrossPagePostBack Then

    SaveData()

    End If

    End Sub

    Private Sub SaveData()

    'Get data using FindControl() to locate reference to the control on source page

    Dim text1 As TextBox = Me.PreviousPage.FindControl("LabelKATW")

    LabelKATW.Text = text1.Text

    End Sub

    End Class

     

     

    Η ερώτηση μου είναι γιατί δεν μπορεί να βρει το LabelKATW που υπάρχει στην προηγούμενη σελίδα add1.aspx;

    Μου λέει ότι το LabelKATW δεν είναι δηλωμένο....

     

  •  04-03-2009, 14:07 48886 σε απάντηση της 48883

    Απ: CrossPagePostBack

     

    ή καλύτερα να σας πω τί θέλω να κάνω μήπως υπάρχει κάποιος καλύτερος τρόπος....

     

    Από την σελίδα add1.aspx συμπληρώνω στοιχεία και κάνοντας click το button "ΚΑΤΑΧΩΡΗΣΗ", ανοίγει τη ΒΔ και καταχωρεί τα στοιχεία που καταχωρήθηκαν. Μέχρι εδώ ΟΛΑ ΚΑΛΑ!

    Αυτό που θέλω να κάνω είναι, μετά την καταχώρηση να καλεί την σελίδα add2.aspx και να "παίρνει" - "θυμάται"  το ID που πήρε από την προηγούμενη σελίδα!

     

     

  •  04-03-2009, 14:22 48890 σε απάντηση της 48886

    Απ: CrossPagePostBack

  •  04-03-2009, 14:42 48897 σε απάντηση της 48890

    Απ: CrossPagePostBack

    Ψάχνοντας στο internet βρήκα αυτό:

    'Page1.aspx stores value in context before transferring

    Context.Items("UserName") = txtName.Text

    Server.Transfer("Page2.aspx")

     

    'Page2.aspx retrieves the value from Page1’s context

    Dim sName As String

    sName = Context.Items("UserName").ToString

    Response.Write("Your name is " & sName)

     

    Το δοκίμασα και δουλεύει!

    Σωστός τρόπος δεν είναι;

  •  04-03-2009, 15:28 48900 σε απάντηση της 48883

    Απ: CrossPagePostBack

    Αν έχεις ορίσει το @PreviousPageType directive με VirtualPath το relative path της προηγούμενης σελίδας, τότε τα poperties της προηγούμενης σελίδας είναι strongly typed. Αυτό σημαίνει ότι δε χρειάζεται να χρησιμοποιήσεις κανένα FindControl() Method. Μπορείς να γράψεις απευθείας PreviousPage.LabelKATW. Απλά δημιούργησε properties (getters) στην προηγούμενη σελίδα που σου επιστρέφουν τα controls τις τιμές των οποίων θέλεις να επεξεργαστείς. Π.χ:

    public Label LabelKATW

    {

       get { return labelKATW;}

    }

    Επίσης, για απλοποίηση, στην αρχική σελίδα από την οποία καλείς την άλλη, αντί για το Click Event του button χρησιμοποίησε το PostBackUrl property με τιμή το relative path της σελίδας που θέλεις να καλέσεις.


    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  04-03-2009, 20:30 48901 σε απάντηση της 48900

    Απ: CrossPagePostBack

    τελικά κόλλησα....

     

    στο αρχείο add.aspx.vb έχω :

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

    'TRANSFER id TO NEXT PAGE

    Context.Items("") = labelPANW.Text

    Server.Transfer("addpic.aspx")

     

    ανοίγει το αρχείο addpic.aspx, διαλέγω τις φώτο και στο click-button, αρχείο addpic.aspx.vb

    Protected Sub Button15_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button15.Click

    'find idCODE from previous page

    Dim idCODE As String = Context.Items("").ToString

    Response.Write( "ΚΩΔΙΚΟΣ ΑΓΓΕΛΙΑΣ" & idCODE)

     

    αλλά δεν δουλεύει.....

    Να και το μήνυμα λάθους:

    Server Error in '/WebSite12' Application.

    Object reference not set to an instance of an object.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

    Source Error:

    Line 49: 
    Line 50:         'find idCODE from previous page
    Line 51:         Dim idCODE As String = Context.Items("").ToString
    Line 52:         Response.Write("ΚΩΔΙΚΟΣ ΑΓΓΕΛΙΑΣ " & idCODE)
    

     

    ΒΟΗΘΕΙΑ!!!!!!

     

  •  04-03-2009, 20:47 48902 σε απάντηση της 48901

    Απ: CrossPagePostBack

    Καλύτερα δες αυτό το video για να καταλάβεις πρώτα το μηχανισμό. Κατέβασε και το παράδειγμα στη γλώσσα της επιλογής σου και αν ξανακολλήσεις εδώ είμαστε.
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  04-03-2009, 20:55 48903 σε απάντηση της 48902

    Απ: CrossPagePostBack

    Markos:
    Καλύτερα δες αυτό το video για να καταλάβεις πρώτα το μηχανισμό. Κατέβασε και το παράδειγμα στη γλώσσα της επιλογής σου και αν ξανακολλήσεις εδώ είμαστε.

     

    Μάρκο το έχω δει το video αυτό, απλά έχω κολλήσει... Αν μπορείς να βοηθήσεις παραπάνω θα το εκτιμούσα.

     

  •  04-03-2009, 21:09 48904 σε απάντηση της 48903

    Απ: CrossPagePostBack

    Αν δεις το video πιο προσεκτικά, θα δεις ότι στο δεύτερο μέρος σου περιγράφει πως να αποκτήσεις access του περιεχομένου της source page μέσα από properties. Δηλαδή αυτό που σου περιέγραψα κι εγώ ατο αρχικό μου post. Από τον κώδικα που ανέβασες δεν έχω καταλάβει ακριβώς τι θέλεις να κάνεις. Ποια είναι η source page ποια είναι η target page και ποια η παράμετρος. Ξαναδές το video από το σημείο που σου λέω και μετά, κατέβασε τον κώδικα του παραδείγματος και μελέτησέ τον. Προσπάθησε να αναπαράγεις το παράδειγμα με τα δικά σου δεδομένα και θα δεις ότι δουλεύει.
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  04-03-2009, 21:40 48908 σε απάντηση της 48904

    Απ: CrossPagePostBack

    Γιατί δεν ρίχνεις μια ματιά σε αυτά που σου έδωσα να ξεμπερδέυεις μιά και έξω;


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  04-03-2009, 21:50 48909 σε απάντηση της 48908

    Απ: CrossPagePostBack

    Eπίσης στο context.items("") γιατί έχεις αφήσει κενό το όνομα του item;
    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  04-03-2009, 21:54 48910 σε απάντηση της 48908

    Απ: CrossPagePostBack

    Κάτσε γιατί τώρα κατάλαβα. Ο αρχικός τίτλος του post με παραπλάνησε. Θέλει να χρησιμοποιήσει το Context object. Ας ρίξει μια ματιά εδώ κι εδώ. Υπάρχουν βλέπεις τόσοι τρόποι να περάσεις μια παράμετρο κι εγώ δεν έχω εμπειρία με ASP.NET εφαρμογές.

    ---------

    ΟΥΠΣ!! Με πρόλαβες!


    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  08-03-2009, 17:03 49013 σε απάντηση της 48910

    Απ: CrossPagePostBack

    Ευχαριστώ για τη γρήγορη απάντηση

    έκανα δουλειά έτσι:

    Session("addID") = returnID

    Response.Redirect("addpic.aspx")

    ---------

     

    Dim idcode = Session("addID").ToString()

    Response.Write("KΩΔΙΚΟΣ id" & idCODE)

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems