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

 

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

DataGrid Hyperlink Columns

Îåêßíçóå áðü ôï ìÝëïò mask. Τελευταία δημοσίευση από το μέλος kkara στις 28-11-2005, 10:22. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  27-11-2005, 21:26 7350

    DataGrid Hyperlink Columns

    Καλησπέρα Παιδιά,

    Έχω ένα προβληματάκι :

    Έχω φτιάξει ένα datagrid το οποίο έχει ένα hyperlink column και θέλω όταν κλικάρω σέ ένα από τα κελιά της στήλης να μεταφέρομαι σε μια άλλη σελίδα.Ως εδώ καλά.Θέλω όμως επιπλέον στην καινούργια σελίδα που μεταφέρομαι, ένα dropDownList που έχω προσθέσει να έχει επιλεγμένει την τιμή του στοιχείου πάνω στο οποίο κλίκαρα και όχι απλά να περιέχει όλα τα στοιχεία της στήλης του dataGrid.
    Ελπίζω να έγινα κατανοητός...

  •  28-11-2005, 10:19 7361 σε απάντηση της 7350

    Απ: DataGrid Hyperlink Columns

    Το πιο απλό που μπορείς να κάνεις είναι να περνάς την προς επιλογή τιμή σαν παράμετρο στο query string, π.χ.

       ~/MyPage.aspx?ValueToSelect=123

    Αν οι τιμές είναι τέτοιες που δεν μπαίνουν "ομαλά" στο URL, τότε μπορείς να τις κωδικοποιήσεις με ένα Base64.

    Στην OnLoad της MyPage.aspx, αν το IsPostBack είναι false, παίρνεις την τιμή από τα Request.Params και αρχικοποιείς το combo σου.


    Νατάσα Μανουσοπούλου
  •  28-11-2005, 10:22 7362 σε απάντηση της 7350

    Απ: DataGrid Hyperlink Columns

    Ο πιο απλός τρόπος για να το κάνεις αυτό είναι να περάσεις την τιμή αυτή στο QueryString της σελίδας στην οποία μεταφέρεσαι. Για αυτό το σκοπό όμως το HyperlinkColumn θα σε δυσκολέψει λίγο γιατί θα πρέπει να θέτεις την κατάλληλη τιμή (προγραμματιστικά) στο property NavigateUrl. Συνήθως ο πιο απλός τρόπος είναι να χρησιμοποιείς TemplateColumn της οποίας το ItemTemplate περιέχει ένα Hyperlink, π.χ. :

    <asp:TemplateColumn>
        <ItemTemplate>
           <asp:Hyperlink runat="server"
    Text="MyPage"
    NavigateUrl='MyPage.aspx?ID=<%#DataBinder.Eval(Container.DataItem,
    "ID")%>'
    />
        </ItemTemplate>
    </asp:TemplateColumn>


    Όπου το ID είναι η τιμή που θέλεις να περάσεις στη σελίδα που μεταφέρεσαι. Αν πάλι θέλεις να κρατήσεις το HyperlinkColumn τότε θα πρέπει να θέσεις κατάλληλη τιμή στο DataNavigateUrlField, αλλά το DataSource σου θα πρέπει να περιέχει πεδία με ολόκληρο το link (κάτι που είναι γενικώς σπάνιο). Πάντα βέβαια υπάρχει και η λύση να κάνεις τη δουλειά προγραμματιστικά στο event Item_Created του Datagrid... Να θυμάσαι ότι... ΕΣΥ αποφασίζεις Smile [:)]

    Όποια μέθοδο κι αν ακολουθήσεις, στη σελίδα που μεταφέρεσαι δεν έχεις παρά να διαβάσεις το Request.QueryString["ID"] και να επιλέξεις την κατάλληλη τιμή στο DropdownList.



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