datagrid

Συζητήσεις για τις γλώσσες του dot Net και για του Visual Studio της Microsoft

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
eagleman
Δημοσιεύσεις: 30
Εγγραφή: 14 Δεκ 2005 19:32

datagrid

Δημοσίευση από eagleman » 29 Αύγ 2006 00:20

καλησπέρα σε όλους,

έχω ένα datagrid το οποίο μου επιστρέφει αποτελέσματα από μία βάση δεδομένων και στο οποίο datagrid θα είναι ενεργοποιημένες οι επιλογές select, edit, delete και κάποιες άλλες για τις ανάγκες της εφαρμογής μου. στην εφαρμογή οι επισκέπτες της σελίδας μου έχουν διαφορετικά δικαιώματα από αυτούς που κάνουν login.

έχω 3 απορίες να κάνω!

1) έστω η περίπτωση ενός datagrid που επισρέφει σχόλια που έχουν γίνει πάνω σε ένα θέμα.

αυτό που θέλω να κάνω είναι:

ο χρήστης ο οποίος έχει κάνει login να έχει το δικαίωμα να μπορεί να κάνει edit στο σχόλιο που έχει κάνει ο ίδιος και να μην έιναι διαθέσιμη η επιλογή edit σε όλους τους χρήστες.

έχω δημιουργήσει ένα session το

Κώδικας: Επιλογή όλων

IDUserLoggedOn = Session("UserIDLoggedOn")
για τον χρήστη που είναι τώρα συνδεδεμένος στο σύστημα.

υπάρχει κάποια εντολή να το κάνει αυτό???


2) αντι για τα buttons(ή links) μπορώ να βάλω κάποια εικόνα να κάνει αυτήν την δουλειά?? να λειτουργεί σαν σύνδεσμος δηλαδή μέσα στο datagrid (να ανοίγει νέα σελίδα).
Όχι header image.

3) με κάποιοο τρόπο να "μικρύνω" το μήκος του datagrid. επειδή εμφανίζω πολλά δεδομένα μου βγαίνει τεράστιο, και από τα properties -->width 60% δεν πιάνει δυστηχώς. έχετε να μου προτείνεται κάποια λύση??

κρύβω τις στήλες που δεν με ενδιαφέρουν:

Κώδικας: Επιλογή όλων

grdData.Columns(0).Visible = False
grdData.Columns(1).Visible = False
grdData.Columns(2).Visible = False
κρύβω τα δικαιώματα από τους απλούς χρήστες (επισκέπτες)

Κώδικας: Επιλογή όλων

grdData.Columns.Item(9).Visible = True
grdData.Columns.Item(10).Visible = True
των εντολών του datagrid:

Κώδικας: Επιλογή όλων

Select Case e.CommandName
            Case "Edit"
                intUsersAction = 2
                Session("UsersAction") = intUsersAction
                Server.Transfer("comments.aspx")
            Case "Delete"
                intUsersAction = 12
                Session("UsersAction") = intUsersAction
                Session("CommentID") = intCommentID
                Server.Transfer("delete.aspx")
            Case "User"
                Session("UserID") = intUserID
                intUserID = e.Item.Cells(2).Text
                Server.Transfer("users_view.aspx")
        End Select

μία ενδεικτική εικόνα ενός datagrid είναι:

Σας ευχαριστώ
Συνημμένα
χωρίς τίτλο.PNG
(18.4 KiB) Μεταφορτώθηκε 334 φορές

Megistos
Δημοσιεύσεις: 149
Εγγραφή: 14 Ιουν 2005 15:38

datagrid

Δημοσίευση από Megistos » 31 Αύγ 2006 15:22

Δεν μας τα λες πολύ καθαρά!

1) Ναι εννοείται ό,τι μπορείς αλλά δεν είναι "μία εντολή" πρέπει να ελέγχεις στη λούπα εάν το post ανήκει στον χρήστη που βλέπει την σελίδα (συγκρίνοντας το αντίστοιχο πεδίο της βάσης με το session variable που έχεις).

2) Βάλε link και στο text property χρησιμοποίησε html για να βάλεις ένα image.

3) Καλύτερα να χρησιμοποιούσες ένα repeater για να έχεις απόλυτο έλεγχο στο πώς θα εμφανίζονται τα μηνύματα. Από τα υπόλοιπα που γράφεις δεν καταλαβαίνω τι ζητάς...
The Flame Still Burns

eagleman
Δημοσιεύσεις: 30
Εγγραφή: 14 Δεκ 2005 19:32

datagrid

Δημοσίευση από eagleman » 03 Σεπ 2006 18:21

1)
δεν είναι "μία εντολή" πρέπει να ελέγχεις στη λούπα εάν το post ανήκει στον χρήστη που βλέπει την σελίδα (συγκρίνοντας το αντίστοιχο πεδίο της βάσης με το session variable που έχεις).
Πως δηλαδή να το κάνω??? αυτό ψάχνω και δεν έχω καταλάβει. μπορείς να μου δώσεις κάποια κατεύθυνση με κώδικα για να το ψάξω και μόνος μου??

2)
Βάλε link και στο text property χρησιμοποίησε html για να βάλεις ένα image
το έβαλα σαν link μέσα στο datagrid

Κώδικας: Επιλογή όλων

<asp&#58;ButtonColumn Text="Select" CommandName="Select"></asp&#58;ButtonColumn>
αλλά δεν βλέπω κάποια εντολή σε html απο τα properties για να αντικαταστήσω το text="select" με image.

3) ok, εδώ το βρήκα!!

Megistos σε ευχαριστώ που απαντάς στα θέματα μου, είμαι αρκετά αρχάριος προγραμματιστής και αυτή είναι η πρώτη μου εφαρμογή σε VB.Net. Γι' αυτό και "ενοχλώ" συνέχεια το forum.

Megistos
Δημοσιεύσεις: 149
Εγγραφή: 14 Ιουν 2005 15:38

datagrid

Δημοσίευση από Megistos » 07 Σεπ 2006 14:39

Επειδή τα έχω ξεχάσει λίγο τα της .NET, όσον αφορά τα data δεν με βόλεψαν ποτέ. Θέμα γούστου, οπότε μπορεί να γράψω και κανένα άκυρο...

Σαν λογική βάλε μέσα στο repeater:

Κώδικας: Επιλογή όλων

<itemtemplate>
......
<%# If Session&#40;"UserID"&#41; = DataBinder.Eval&#40;Container.DataItem, "field_user_id"&#41; Then %>
<a href="/edit_post.aspx?postID=<%# DataBinder.Eval&#40;Container.DataItem, "field_post_id"&#41; %>">edit</a>
<% End If %>
......
</itemtemplate>
Όσον αφορά το image μπορείς να κάνεις το εξής:

Κώδικας: Επιλογή όλων

<a href="/edit_post.aspx?postID=<%# DataBinder.Eval&#40;Container.DataItem, "field_post_id"&#41; %>"><img src="..."/></a>
ή

Κώδικας: Επιλογή όλων

<asp&#58;LinkButton OnClick="lblClick" runat="server"><img src="..."/></asp&#58;LinkButton>
The Flame Still Burns

Απάντηση

Επιστροφή στο “dot Net και Visual Studio”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες