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

 

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

Get Data from a table which has been generated programmatically

Îåêßíçóå áðü ôï ìÝëïò StrouMfios. Τελευταία δημοσίευση από το μέλος StrouMfios στις 24-01-2011, 16:23. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  21-01-2011, 18:39 62580

    Get Data from a table which has been generated programmatically

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

    έχω έναν πίνακα τον οποίο τον φτιάχνω απο το codebehind και θέλω όταν ο χρήστης πατήσει ενα button να πάρω όλα τα data.
    Ο πίνακας έχει δυο γραμμές και τρείς στήλες.
    Οι δύο στήλες έχουν TextBox και η μία έχει DropDownList(εδώ είναι το πρόβλημα)

    Το πρόβλημα είναι οτι μου φέρνει σωστά τα data απο τα textBoxes αλλα για το DropDownList μου φέρνει και για τις δύο γραμμές το value της δεύτερης γραμμής.

    Πιο συγκεκριμένα

    For the 1st row --> Mr |  Foo | Bar

    for 2nd row- -> Mrs | Foo1 | Bar1

    Όταν ο χρήστης πατήσει το button

    For 1st row --> Mrs | Foo | Bar --> το σωστό θα ήταν (Mr | Foo | Bar)

    For 2nd row- -> Mrs | Foo1 | Bar1.


    private void SetPassengerDetailsTable(int roomIdentity, int? adults,
                int? children, int? infants, bool setLeader = false) {
                var leaderIsSet = false;
                var roomTable = new Table();
                roomTable.ID = "PassengerDetailsTBL_" + roomIdentity;
                var trHeader = new TableHeaderRow();
                var tcTitle = new TableCell();
                tcTitle.Controls.Add(new Label() { Text = "<b>Title</b>" });
                trHeader.Cells.Add(tcTitle);
    
                var tcFName = new TableCell();
                tcFName.Controls.Add(new Label() { Text = "<b>First Name</b>" });
                trHeader.Cells.Add(tcFName);
    
                var tcLName = new TableCell();
                tcLName.Controls.Add(new Label() { Text = "<b>Last Name</b>" });
                trHeader.Cells.Add(tcLName);
    
                var tcType = new TableCell();
                tcType.Controls.Add(new Label() { Text = "<bType</b>" });
                trHeader.Cells.Add(tcType);
    
                roomTable.Rows.Add(trHeader);
    
                var listItems = new ListItemDevil;
                listItems[0] = new ListItem("", "") { Selected = true };
                listItems[1] = new ListItem("Mr", "Mr");
                listItems[2] = new ListItem("Mrs", "Mrs");
                listItems[3] = new ListItem("Miss", "Miss");
                listItems[4] = new ListItem("Infant", "Inf");
                listItems[5] = new ListItem("Child", "Master");
    
    
                if (adults != null || adults > 0) {
    
                    for (int i = 1; i <= adults; i++) {
                        var trBody = new TableRow();
                        var ddl = new DropDownList();
                        var leadAdultRowID = setLeader && !leaderIsSet ? "leadadult" : "adult";
                        ddl.ID = "room" + roomIdentity + leadAdultRowID + i + "Title";
                        ddl.Items.AddRange(listItems);
    
                        var tcTitleValue = new TableCell();
                        tcTitleValue.Controls.Add(ddl);
                        trBody.Cells.Add(tcTitleValue);
    
                        var tcFNameValue = new TableCell();
                        tcFNameValue.Controls.Add(new TextBox() { ID = "room" + roomIdentity + "adult" + i + "FName", Width = 170 });
                        trBody.Cells.Add(tcFNameValue);
    
                        var tcLNameValue = new TableCell();
                        tcLNameValue.Controls.Add(new TextBox() { ID = "room" + roomIdentity + "adult" + i + "LName", Width = 170 });
                        trBody.Cells.Add(tcLNameValue);
    
                        var tcTypeValue = new TableCell();
                        var leadAdult = setLeader && !leaderIsSet ? "Lead Adult" : "Adult";
                        tcTypeValue.Controls.Add(new Label() { Text = leadAdult });
                        trBody.Cells.Add(tcTypeValue);
                        roomTable.Rows.Add(trBody);
    
                        if (setLeader)
                            leaderIsSet = true;
                    }
                }
    
                if (children != null || children > 0) {
                    for (int i = 1; i <= children; i++) {
                        var trBody = new TableRow();
                        var ddl = new DropDownList();
                        ddl.ID = "room" + roomIdentity + "child" + i + "Title";
                        ddl.Items.AddRange(listItems);
    
                        var tcTitleValue = new TableCell();
                        tcTitleValue.Controls.Add(ddl);
                        trBody.Cells.Add(tcTitleValue);
    
                        var tcFNameValue = new TableCell();
                        tcFNameValue.Controls.Add(new TextBox() { ID = "room" + roomIdentity + "child" + i + "FName", Width = 170 });
                        trBody.Cells.Add(tcFNameValue);
    
                        var tcLNameValue = new TableCell();
                        tcLNameValue.Controls.Add(new TextBox() { ID = "room" + roomIdentity + "child" + i + "LName", Width = 170 });
                        trBody.Cells.Add(tcLNameValue);
    
                        var tcTypeValue = new TableCell();
                        tcTypeValue.Controls.Add(new Label() { Text = "Child" });
                        trBody.Cells.Add(tcTypeValue);
                        roomTable.Rows.Add(trBody);
                    }
                }
    
                if (infants != null || infants > 0) {
                    for (int i = 1; i <= infants; i++) {
                        var trBody = new TableRow();
                        var ddl = new DropDownList();
                        ddl.ID = "room" + roomIdentity + "infan" + i + "Title";
                        ddl.Items.AddRange(listItems);
    
                        var tcTitleValue = new TableCell();
                        tcTitleValue.Controls.Add(ddl);
                        trBody.Cells.Add(tcTitleValue);
    
                        var tcFNameValue = new TableCell();
                        tcFNameValue.Controls.Add(new TextBox() { ID = "room" + roomIdentity + "infan" + i + "FName", Width = 170 });
                        trBody.Cells.Add(tcFNameValue);
    
                        var tcLNameValue = new TableCell();
                        tcLNameValue.Controls.Add(new TextBox() { ID = "room" + roomIdentity + "infan" + i + "LName", Width = 170 });
                        trBody.Cells.Add(tcLNameValue);
    
                        var tcTypeValue = new TableCell();
                        tcTypeValue.Controls.Add(new Label() { Text = "Infant" });
                        trBody.Cells.Add(tcTypeValue);
                        roomTable.Rows.Add(trBody);
                    }
                }
                PassengerDetailsPH.Controls.Add(roomTable);
            }

    Ευχαριστώ

    αν δεν το θες, www.antallakseto.gr
    Δημοσίευση στην κατηγορία:
  •  21-01-2011, 18:45 62582 σε απάντηση της 62580

    Απ: Get Data from a table which has been generated programmatically

    Καταρχήν, τί εννοείς πίνακα? Πίνακα στη βάση ή Grid? Γιατί πίνακας στη βάση δεν έχει "TextBox", "DropDownList" αλλά τύπους όπως nvarchar, int. Δεύτερον, αν εννοείς Grid, για ποιό control μιλάμε και πως φορτώνεις τα δεδομένα? Τί μορφή έχουν αυτά τα δεδομένα, είναι DataTable, List<Κατιτί>, κάτι άλλο? Πως φορτώνεις στο grid?
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  21-01-2011, 18:55 62584 σε απάντηση της 62582

    Απ: Get Data from a table which has been generated programmatically

    Έχεις ένα δίκιο.
    Είναι Table Control, δεν είναι Grid.
    Τα data δεν τα φορτώνω εγώ, γίνεται edit ο πίνακας απο τους χρήστες.



    αν δεν το θες, www.antallakseto.gr
  •  21-01-2011, 19:33 62586 σε απάντηση της 62584

    Απ: Get Data from a table which has been generated programmatically

    Βάλε την αρχικοποίηση της μεταβλητής listItems μέσα στο for loop. Επειδή είναι έξω από το for loop και τα δύο DroDownList έχουν τα ίδια objects σαν ListItems και επειδή στο τελευταίο loop γίνεται selected ένα από αυτά όλα τα DroDownList έχουν ίδιο ListItem σαν selected. 
    Τάσος Καραγιάννης

    Baby debugging steps...
  •  24-01-2011, 16:23 62644 σε απάντηση της 62586

    Απ: Get Data from a table which has been generated programmatically

    Έπαιξε με την αρχικοποίηση μέσα σε κάθε loop.
    Ευχαριστώ

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