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

 

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

από dropdownlist σε gridview,πως γίνετε?

Îåêßíçóå áðü ôï ìÝëïò SnakeEyes. Τελευταία δημοσίευση από το μέλος PanPan στις 28-11-2006, 14:40. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-11-2006, 12:39 21081

    από dropdownlist σε gridview,πως γίνετε?

    Παρακαλώ θα ήθελα την βοήθεια σας στο εξής:

    Έχω 5 dropdownlist τα οποία παίρνουν κάποια δεδομένα από μια βάση και ένα κουμπάκι και θέλω κάθε φορά που πατάω το κουμπί αυτά που έχω επιλέξει στα dropdownlist να
    πηγαίνουν σε ένα gridview στη συνέχεια να κάνω άλλο συνδιασμό επιλογών στα dropdownlist και πατώντας το κουμπί να προστήθωντε σε μια νέα γραμμή του gridview.
    Επίσης με ένα δεύτερο κουμπί να γίνεται καθαρισμός του gridview.

    Θα μπορούσε κάποιος να βοηθήσει?

    Y.Γ.
    Γράφω το κώδικα σε C#


    "...κάπου μακριά οι άνθρωποι θα νομίζουν πως είναι ακόμα ζωντανοί..."
  •  24-11-2006, 15:39 21097 σε απάντηση της 21081

    Απ: από dropdownlist σε gridview,πως γίνετε?

    Μία εύκολη και γρήγορη υλοποίηση είναι να χρησιμοποιήσεις Binding. Αν τα dropdown φορτώνουν δεδομένα από Lookup Πίνακες και το GridView φορτώνει δεδομένα από έναν κεντρικό που έχει σχέσεις με τα Lookup τότε το Binding είναι ότι καλύτερο και γρηγορότερο μπορείς να κάνεις.

  •  24-11-2006, 19:49 21116 σε απάντηση της 21081

    Απ: από dropdownlist σε gridview,πως γίνετε?

    Θα μπορούσες να μου δώσεις περισσότερες πληροφορίες γιατί δεν γνωρίζω πολλά πράγματα,πχ Lookup πίνακες τι είναι. θα με βοηθούσαν πολύ παραδείγματα κώδικα.
    "...κάπου μακριά οι άνθρωποι θα νομίζουν πως είναι ακόμα ζωντανοί..."
  •  28-11-2006, 12:18 21327 σε απάντηση της 21116

    Απ: από dropdownlist σε gridview,πως γίνετε?

    To GridView Control θα πρέπει να έχει ώς DataSource κάποιον πίνακα με δεδομένα (DataTable), και καθένα από τα DropDownLists να δίνει την τιμή για μία στήλη από αυτόν τον πίνακα. (Άν κατάλαβα καλά το σενάριο)

     

    Έχουμε λοιπόν έναν υποθετικό πίνακα με δύο στήλες, Product και ProductEvaluation.

    H aspx Σελίδα μας θα είναι κάπως έτσι:

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<A href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</A>">

    <html xmlns="<A href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</A>" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="True">
            </asp:GridView>
            <asp:Button ID="clearButton" runat="server" Text="Clear Grid" OnClick="clearButton_Click" />&nbsp;<br />
            &nbsp;&nbsp;
            <br />
            <asp:DropDownList ID="DropDownList1" runat="server">
                <asp:ListItem>PC</asp:ListItem>
                <asp:ListItem>Motherboard</asp:ListItem>
                <asp:ListItem>Hard Disk</asp:ListItem>
            <br />
            <asp:DropDownList ID="DropDownList2" runat="server" Width="98px">
                <asp:ListItem>Good</asp:ListItem>
                <asp:ListItem>Not Bad</asp:ListItem>
                <asp:ListItem>Bad</asp:ListItem>
            </asp:DropDownList>
            </div ID="addButton" runat="server" OnClick="addButton_Click" Text="Add" Width="76px">
        </form>
    </body>
    </html>

     

    Παρατήρησε πως το GridView Control έχει το Property AutoGenerateColumns="True"

     

    Λοιπόν, πάμε στο cs File όπου θα κάνουμε την ουσιαστική δουλειά.Εκεί έχουμε

    //Declare the DataTable
        private static DataTable dt;

        protected void Page_Load(object sender, EventArgs e)
        {
            //Create the DataTables Columns
            //The First Time the Page is Load
            if (!IsPostBack)
            {
                dt = new DataTable();
                dt.Columns.Add("Product");
                dt.Columns.Add("Value");
            }

            //Bind the GridView Control to the DataTable
            GridView1.DataSource = dt;
        }
        protected void addButton_Click(object sender, EventArgs e)
        {
            //Create a new Row from the DataTable
            DataRow dr = dt.NewRow();

            //Get The Row Values from the DropDownLists Texts
            object[] obj = { DropDownList1.Text, DropDownList2.Text };

            //Fill the new DataRow with those Values
            dr.ItemArray = obj;

            //Add the new DataRow to the DataTable
            dt.Rows.Add(dr);

            //Refresh The GridView Data by ReBinding it
            //to the Changed DataTable
            GridView1.DataBind();
        }
        protected void clearButton_Click(object sender, EventArgs e)
        {
            //Clear All the DataRows from
            //the DataTable
            dt.Clear();

            //Refresh The GridView Data by ReBinding it
            //to the Changed DataTable
            GridView1.DataBind();
        }

    Όπως βλέπεις, ορίζουμε αρχικά τον πίνακα, τον "δένουμε" στο GridView και έπειτα αντιδρούμε στον πίνακα (και κατά επέκταση στο GridView) ανάλογα με το κουμπί που πάτησε ο χρήστης.

     

    Άν σε κάποιο σημείο χρειάζεσαι παραπάνω επεξήγηση, εδώ είμαστε.

     

     

  •  28-11-2006, 12:25 21328 σε απάντηση της 21327

    Απ: από dropdownlist σε gridview,πως γίνετε?

    Βέβαια στο παράδειγμα αυτό χρησιμοποίησα ένα Custom DataTable και όχι έναν από μία Βάση Δεδομένων.

    Ωστόσο και στην δεύτερη περίπτωση δεν υπάρχει σημαντική διαφοροποίηση, απλά παίρνεις έτοιμο το DataTable από την Βάση. (βέβαια χρειάζεται να δημιουργήσεις ένα Connection και έναν Adapter αλλά αυτά γίνονται πλέον εύκολα με τους Wizard του VS).
  •  28-11-2006, 14:40 21334 σε απάντηση της 21328

    Απ: από dropdownlist σε gridview,πως γίνετε?

    Μπορεί να μου πει κάποιος όταν προχωράω με tab από ένα dropdownlist στο οποίο έχω επιλέξει τιμή, η τιμή εξαφανίζεται;;
    "Μη σταματάς να αναζητάς αυτό που αγαπάς, ειδάλλως θα καταλήξεις να αγαπάς ό,τι βρίσκεις." (Αγνώστου)
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems