Καλώς ορίσατε στο
dotNETZone.gr
-
Σύνδεση
|
Εγγραφή
|
Βοήθεια
σε
ASP.NET WebForms (συζήτηση)
Managed Code (ομάδα)
(όλο το δικτυακό τόπο)
Αρχική σελίδα
Ιστολόγια
Συζητήσεις
Εκθέσεις Φωτογραφιών
Αρχειοθήκες
dotNETZone.gr
»
Managed Code
»
ASP.NET WebForms
»
Απ: Custom HTML μέσα σε ASP.NET 2.0 server controls - Διαφορά από 1.x
Custom HTML μέσα σε ASP.NET 2.0 server controls - Διαφορά από 1.x
Îåêßíçóå áðü ôï ìÝëïò
Sunburn
.
Τελευταία δημοσίευση από το μέλος
Sunburn
στις 27-03-2006, 14:54. Υπάρχουν 5 απαντήσεις.
Tweet
Ταξινόμηση Δημοσιεύσεων:
Παλαιότερο προς νεότερο
Νεότερο προς παλαιότερο
Προηγούμενο
Επόμενο
15-03-2006, 15:33
10686
Sunburn
Μέλος από τις 15-07-2005
Δημοσιεύσεις 52
Custom HTML μέσα σε ASP.NET 2.0 server controls - Διαφορά από 1.x
'Ενα από τα χαρακτηριστικά που χρησιμοποιώ συχνότατα στο ASP.NET 1.x είναι η δυνατότητα να εισάγεις (inject?) κώδικα HTML μέσα σε ένα κείμενο το οποίο στη συνέχεια, oταν εμφανιζόταν στο server control για το οποίο προοριζόταν, κάνει σωστά rendering το τμήμα HTML. Αυτό είναι χρησιμότατο όταν θέλω να αλλάξω τα χαρακτηριστικά του ΗΤΜL κώδικα βάσει της τιμής κάποιας μεταβλητής κλπ.
Παράδειγμα: Παιρνω ενα datatable με 2 columns, το πρώτο έχει κάποιο κείμενο και το δεύτερο κάποιες τιμές. Ακολούθως:
for
each
theRow
in
datatable.rows
if
theRow(
"Column2"
) > 0
then
theRow(
"Column1"
)
=
"Click <a href=Page1>here</a> for details"
else
theRow(
"Column1"
)
=
"You are not authorised <img src='Stop.jpg'>"
end
if
next
Κάνω λοιπόν μετά databind π.χ. ένα datagrid σε αυτό το datatable και όντως σε κάθε σειρά του Column1 εμφανίζει διαφορετικό HTML αναλόγως με τις τιμές του Column2.
Πάω τώρα να κάνω το ίδιο σε ένα ASP.NET 2.0 server control και βλέπω ότι η συμπεριφορά του rendering έχει αλλάξει. Αντί να αναγνωρίζει τα HTML tags και να παράγει HTML output από αυτά, τα αντιμετωπίζει ως απλό κείμενο και τα βγάζει χύμα όπως ακριβώς τα πήρε. Π.χ. στο παραπάνω παράδειγμα αντί να βγάζει hyperlink ή εικόνα, βγάζει αντίστοιχα τα κείμενα "<a href=Page1>here</a>" και "<img src='Stop.jpg'>".
Γνωρίζει κάποιος πώς γίνεται να κάνει το rendering με τον ίδιο τρόπο όπως στα 1.x controls?
Αναφορά Κακοποίησης
22-03-2006, 11:35
10956
σε απάντηση της
10686
Sunburn
Μέλος από τις 15-07-2005
Δημοσιεύσεις 52
Απ: Custom HTML μέσα σε ASP.NET 2.0 server controls - Διαφορά από 1.x
Κανείς;
Αναφορά Κακοποίησης
22-03-2006, 12:03
10960
σε απάντηση της
10956
dimkasta
Μέλος από τις 01-12-2005
Αθήνα
Δημοσιεύσεις 317
Απ: Custom HTML μέσα σε ASP.NET 2.0 server controls - Διαφορά από 1.x
Θα ήτανε καλύτερα να κάνεις τη στήλη template και να την επεξεργαστείς βάζοντας μέσα πχ ένα hyperlink που να γίνεται bind ή να του δίνεις κάποια τιμή με το prerender.
Άν θες περισσότερες διευκρινήσεις πές
Simple Photography
Αναφορά Κακοποίησης
27-03-2006, 14:09
11213
σε απάντηση της
10686
Sunburn
Μέλος από τις 15-07-2005
Δημοσιεύσεις 52
Απ: Custom HTML μέσα σε ASP.NET 2.0 server controls - Διαφορά από 1.x
To πρόβλημα με τα templates ειναι οτι υποθέτουν πως ξέρεις εκ των προτέρων τί δεδομένα θα σου έρθουν για binding. Σε πολλές περιπτώσεις βάζεις ένα GridView ή DetailsView χωρίς να ξέρεις τί ακριβώς columns θα έρθουν (γιατί το SELECT query αλλάζει σύμφωνα με τις επιλογές του χρήστη), οπότε υποχρεωτικά χρησιμοποιείς auto-generated fields για να καλύψεις κάθε περίπτωση.
Υπάρχει κάποιο property στα 2.0 controls που να τα υποχρεώνει να κάνουν σωστό HTML rendering αντί απλά να "παπαγαλίζουν" το κείμενο που τους έρχεται;
Αναφορά Κακοποίησης
27-03-2006, 14:42
11217
σε απάντηση της
10686
Mitsaras
Μέλος από τις 12-09-2005
Θεσσαλονίκη
Δημοσιεύσεις 818
Απ: Custom HTML μέσα σε ASP.NET 2.0 server controls - Διαφορά από 1.x
Μπορείς τότε στο databinding να καλείς ένα function, με παραμέτρους τα 2 αυτά πεδία (ως objects, με το απαραίτητο type casting φυσικά), το οποίο θα επεξεργάζεται τα στοιχεία και θα τυπώνει το κατάλληλο κείμενο.
Μην αφήνετε τα media να σας "ταΐζουν"!
Αναφορά Κακοποίησης
27-03-2006, 14:54
11218
σε απάντηση της
11217
Sunburn
Μέλος από τις 15-07-2005
Δημοσιεύσεις 52
Απ: Custom HTML μέσα σε ASP.NET 2.0 server controls - Διαφορά από 1.x
Το βρήκα!
Το παρακάτω δουλεύει χρησιμοποιώντας το event "Databound" του DetailsView αλλά υποθέτω πως το ίδιο ισχύει και για τα άλλα 2.0 controls:
Dim
theRow
As
DetailsViewRow
For
Each
theRow
In
DetailsView1.Rows
If
theRow.Cells(0).Text
=
"Email"
Then
theRow.Cells(1).Text
=
"<a href=mailto:theRow.Cells(1).Text>"
& theRow.Cells(1).Text &
"</a>"
End
If
Next
Αναφορά Κακοποίησης