Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,

σε μία φόρμα έχω ένα 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...

Δημοσ.

Τελικά βρήκα το λάθος. Τη συνάρτηση

>setValueofOtherAuthors(numberOfOtherAuthors);

όπου πέρνω τις τιμές των textboxes πρέπει να τη καλέσω στο Listener του κουμπιού και όχι στη pageload(). Σίγουρα δεν είναι η καλυτερη λύση αυτή, αλλά λειτουργει!!

Αν κάποιος γνωρίζει για το page life ας προτείνει κάτι σωστότερο, ώστε να υπάρχει στο forum.

 

Hapy programming!!

Και πάνω από όλα τεράστια υπομονή με το προγραματισμο, πάντα θα υπάρχει κάτι που θα σε βασανίσει :P

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...