jimmysnn_17 Δημοσ. 7 Ιουνίου 2012 Δημοσ. 7 Ιουνίου 2012 Καλησπέρα, σε μία φόρμα έχω ένα dropdownlist control με το οποίο επιλέγω ένα αριθμό σύμφωνα με τον οποίο θα δημιουργώ και τα αντίστοιχα textboxes. Στη συνέχεια έχω ένα κουμπί για να κάνω submit. Παρακάτω δίνω το κώδικα μου. >using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public class GuiOtherAuthors { public OtherAuthors[] tableOtherAuthors; public Label[] lblName; public TextBox[] txtName; public Label[] lblSurname; public TextBox[] txtSurname; public Label[] lblInstitution; public TextBox[] txtInstitution; public Label[] lblCountry; public TextBox[] txtCountry; public Label[] lblEmail; public TextBox[] txtEmail; public PlaceHolder PlaceHolder1 = new PlaceHolder(); public Int32 NumberOfAutherOthos { set; get; } public void InitializeControls() { tableOtherAuthors = new OtherAuthors[NumberOfAutherOthos]; lblName = new Label[NumberOfAutherOthos]; txtName = new TextBox[NumberOfAutherOthos]; lblSurname = new Label[NumberOfAutherOthos]; txtSurname = new TextBox[NumberOfAutherOthos]; lblInstitution = new Label[NumberOfAutherOthos]; txtInstitution = new TextBox[NumberOfAutherOthos]; lblCountry = new Label[NumberOfAutherOthos]; txtCountry = new TextBox[NumberOfAutherOthos]; lblEmail = new Label[NumberOfAutherOthos]; txtEmail = new TextBox[NumberOfAutherOthos]; for (int i = 0; i < NumberOfAutherOthos; i++) { lblName[i] = new Label(); lblName[i].Text = "Name:"; txtName[i] = new TextBox(); lblSurname[i] = new Label(); lblSurname[i].Text = "Surname:"; txtSurname[i] = new TextBox(); lblInstitution[i] = new Label(); lblInstitution[i].Text = "Institution:"; txtInstitution[i] = new TextBox(); lblCountry[i] = new Label(); lblCountry[i].Text = "Country:"; txtCountry[i] = new TextBox(); lblEmail[i] = new Label(); lblEmail[i].Text = "Email:"; txtEmail[i] = new TextBox(); } } public PlaceHolder makeGUI() { int i = 0; int j = 1; for (i = 0; i < NumberOfAutherOthos; i++) { Label authorInformation = new Label(); authorInformation.Text = "Information for Author " + j.ToString() + " :"; lblName[i].Text = "Name:"; lblSurname[i].Text = "Surname:"; lblInstitution[i].Text = "Institution:"; lblCountry[i].Text = "Country:"; lblEmail[i].Text = "Email:"; PlaceHolder1.Controls.Add(new LiteralControl("<table>")); PlaceHolder1.Controls.Add(new LiteralControl("<span style=\"font-weight:bold;\" ")); PlaceHolder1.Controls.Add(authorInformation); PlaceHolder1.Controls.Add(new LiteralControl("</span>")); PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>")); PlaceHolder1.Controls.Add(lblName[i]); PlaceHolder1.Controls.Add(new LiteralControl("</td><td>")); PlaceHolder1.Controls.Add(txtName[i]); PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>")); PlaceHolder1.Controls.Add(lblSurname[i]); PlaceHolder1.Controls.Add(new LiteralControl("</td><td>")); PlaceHolder1.Controls.Add(txtSurname[i]); PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>")); PlaceHolder1.Controls.Add(lblInstitution[i]); PlaceHolder1.Controls.Add(new LiteralControl("</td><td>")); PlaceHolder1.Controls.Add(txtInstitution[i]); PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>")); PlaceHolder1.Controls.Add(lblCountry[i]); PlaceHolder1.Controls.Add(new LiteralControl("</td><td>")); PlaceHolder1.Controls.Add(txtCountry[i]); PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>")); PlaceHolder1.Controls.Add(lblEmail[i]); PlaceHolder1.Controls.Add(new LiteralControl("</td><td>")); PlaceHolder1.Controls.Add(txtEmail[i]); PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); PlaceHolder1.Controls.Add(new LiteralControl("</table><br /> ")); j++; } return PlaceHolder1; } } >public partial class NewArticleForm : System.Web.UI.Page { private User currentUser = new User(); private int numberOfOtherAuthors; private GuiOtherAuthors gui = new GuiOtherAuthors(); List<OtherAuthors> otherAuthorsList = new List<OtherAuthors>(); protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { numberOfOtherAuthors = NumberOfOtherAuthors(); if (!numberOfOtherAuthors.Equals(0)) { gui.NumberOfAutherOthos = numberOfOtherAuthors; gui.InitializeControls(); Panel1.Controls.Add(gui.makeGUI()); setValueofOtherAuthors(numberOfOtherAuthors); } } } private void setValueofOtherAuthors(int numberOfOtherAuthors) { for(int i=0; i<numberOfOtherAuthors; i++) { OtherAuthors temp = new OtherAuthors(); temp.Name = gui.txtName[i].Text; temp.Surname = gui.txtName[i].Text; temp.Affiliation = gui.txtInstitution[i].Text; temp.Country = gui.txtCountry[i].Text; temp.Email = gui.txtEmail[i].Text; otherAuthorsList.Add(temp); } } public List<OtherAuthors> getValueofOtherAuthors() { return otherAuthorsList; } public int NumberOfOtherAuthors() { Int32 index = Convert.ToInt32(NumberList.SelectedValue); return index; } Κάτι έχω διαβάσει για το Page Life αλλά δεν μπορώ να βρω λύση πως να πάρω τις τιμές από τα textbox...
jimmysnn_17 Δημοσ. 8 Ιουνίου 2012 Μέλος Δημοσ. 8 Ιουνίου 2012 Τελικά βρήκα το λάθος. Τη συνάρτηση >setValueofOtherAuthors(numberOfOtherAuthors); όπου πέρνω τις τιμές των textboxes πρέπει να τη καλέσω στο Listener του κουμπιού και όχι στη pageload(). Σίγουρα δεν είναι η καλυτερη λύση αυτή, αλλά λειτουργει!! Αν κάποιος γνωρίζει για το page life ας προτείνει κάτι σωστότερο, ώστε να υπάρχει στο forum. Hapy programming!! Και πάνω από όλα τεράστια υπομονή με το προγραματισμο, πάντα θα υπάρχει κάτι που θα σε βασανίσει
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα