C# - Array o List di Oggetti

di
Anonimizzato7034
il
3 risposte

C# - Array o List di Oggetti

Salve,
dovrei creare un form ed una pagina Aspx con un numero variabili di textbox e di label.
Ovvero, l'utente se seleziona un prodotto A la pagina ed il form dovranno avere 7 textbox invece selezionando un prodotto B dovranno esser generate 18 tb.
Metterle tutte a mano è controproducente!!!

Ho cercato su internet ma non ho trovato soluzione a questo quesito..chi può aiutarmi?

Vi ringrazio anticipatamente!!

3 Risposte

  • Re: C# - Array o List di Oggetti

    Ciao joeykiske
    Potresti usare la generazione del codice html via codice, ad esempio:

    file .aspx
    
    <body>
        <form id="form1" runat="server">
            <div>
                <%= WriteTextBoxList()%>
            </div>
            <asp:TextBox ID="TextBoxA" runat="server"></asp:TextBox>
        </form>
    </body>
    
    file .aspx.cs
    
    public partial class Test1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
    
        protected string WriteTextBoxList()
        {
            int textBoxCount = 5;  // imposti questo valore leggendo qualche condizione
    
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < textBoxCount; ++i)
            {
                sb.AppendLine("<input type='text' name='box_" + i + "' + class='myBox'><br/>");
            }
    
            return sb.ToString();
        }
    }
    
    Questo ti genera una pagina con 5 campi di input.

    P.S. Ho qualche dubbio di aver capito bene il problema, in quanto la mia risposta non ha nulla a che fare con gli Array o le Liste che specifichi nel subject.
  • Re: C# - Array o List di Oggetti

    Grazie del consiglio!
    In questo modo posso mettere tutto all'interno di un pannello e con un foreach modifico i metodi che mi occorrono.
    Per quanto riguarda l'allineamento all'interno della pagina è possibile modificare i parametri x,y,z ?

    In un windows form è possibile generare txtbox in automatico?
    Penso che occorra anche la disposizione all'interno del form...

    Grazie ancora per la risposta!
  • Re: C# - Array o List di Oggetti

    Ciao joeykiske

    Per il posizionamento puoi ricorrere ai css, riscrivo il file .aspx per mettere una classe al div (e togliere una riga che non serviva)

    file .aspx
    
    <body>
        <form id="form1" runat="server">
            <div class="BoxList">
                <%= WriteTextBoxList()%>
            </div>
        </form>
    </body>
    
    a questo punto puoi scrivere un .css
    
    .BoxList
    {
      border:1px solid green;
      height:300px;
      margin:10px auto 10px auto;
      position: relative;
      width:500px;
    }
    
    .myBox
    {
       width:100px;
       margin-left:10px;
    }
    
    in questo esempio gli input sono dentro al pannello, uno sotto l' altro a 10px del bordo sinistro.

    Oppure nel codice puoi impostare delle posizioni assolute per ognuno:
    
    protected string WriteTextBoxList()
    {
        int textBoxCount = 5;  // imposti questo valore leggendo qualche condizione
    
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < textBoxCount; ++i)
        {
            sb.AppendLine("<input type='text' name='Box_" + i +
                "' + class='myBox' style='left:" + i * 10 +
                "px; top:" + i * 30 + "px; '>");
        }
    
        return sb.ToString();
    }
    
    Non è molto leggibile ma funziona, (nel css aggiungi l' absolute):
    
    .BoxList
    {
      border:1px solid green;
      height:300px;
      margin:10px auto 10px auto;
      position: relative;
      width:500px;
    }
    
    .myBox
    {
       width:100px;
       position:asbolute;
    }
    
    In questo esempio gli input sono disposti in diagonale.
Devi accedere o registrarti per scrivere nel forum
3 risposte