Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di shaone
    Registrato dal
    Apr 2003
    Messaggi
    212

    [ASP.Net] Array come proprietà di un controllo personalizzato, è possibile farlo?

    Salve a tutti,
    sto cominciando da poco a creare dei controlli personalizzati e adesso mi sono ritrovato di fronte ad un muro.

    Sto cercando di creare un controllo che mi crei in automatico una tabella.
    Le proprietà che ho creato sono le seguenti:

    BlockWidth - che imposta la larghezza della tabella
    NumberCell - che mi imposta il numero di celle che deve contenere

    Adesso avrei bisogno di creare una proprietà tipo DataSource che mi permetta, passandogli un array di stringhe di di inserire in ogni cella il valore dell'elemento corrispondente.

    Spero di essere stato chiaro e di ricevere un aiuto o un consiglio su come posso fare questa cosa. Grazie!

    Quello che ho scritto finora è questo:

    Lo utilizzo con

    codice:
    <%@ Register TagPrefix = "Content" TagName = "Block" Src = "block.ascx" %>
    <Content:Block ID="block1" NumberCell="10" BlockWidth="1000" CellString="pippo" runat="server"/>
    Il codice del controllo invece è questo

    codice:
    <script language="c#" runat="server">
    private int block_width = 500;	// Dimensione blocco
    private int n_cell = 1;			// Numero celle nel blocco
    
    private void Page_Load()
    {
    	
    	for(int x = 1 ; x < n_cell; x++)
    	{
    		string cell_width = Convert.ToString(block_width/n_cell);
    		
    		HtmlTableCell cell = new HtmlTableCell();
    		cell.ID = "cell" + Convert.ToString(x);
    		cell.InnerHtml = Convert.ToString(x);
    		cell.Width = cell_width;
    		row.Controls.Add(cell);
    	}
    }
    
    public string BlockWidth
    {
      get 
      {
    	 return Convert.ToString(block_width);
      }
      set 
      {
    	 block_width = Convert.ToInt32(value);
      }
    }
    
    public string NumberCell
    {
      get 
      {
    	 return Convert.ToString(n_cell);
      }
      set 
      {
    	 n_cell = Convert.ToInt32(value);
      }
    }
    </script>
    
    <table border="1" cellpadding="0" cellspacing="0">
    	<tr id="row" runat="server">
    	</tr>
    </table>

  2. #2
    Utente di HTML.it L'avatar di shaone
    Registrato dal
    Apr 2003
    Messaggi
    212
    io credo che le ipotesi siano 3.
    1. Non mi sono spiegato bene (probabile).
    2. La cosa è troppo stupida tanto che non merita di essere spiegata.
    3. La cosa è troppo complessa da essere spiegata su un forum.

    Indipendentemente dala motivazione , mi avrebbe fatto comodo anche semplicemente un indicazione o qualcosa che mi possa mettere sulla giusta via.

    Devo poter utilizzare un array di stringhe in un controllo personalizzato, una sorta di DataSource dei controlli repeater!

    Grazie per la disponibilità!

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    al posto di una tabella ci metti un controllo repeater..
    fai un'altra proprietà
    public virtual object DataSource {get; set;}
    oppure al posto di object limiti il "campo" all'array

    e poi manualmente nel Page_Load fai
    nomerepeater.DataSource = _DataSource
    (dove _DataSource lo ricavi analogamente a n_cell e block_width)

  4. #4
    Utente di HTML.it L'avatar di shaone
    Registrato dal
    Apr 2003
    Messaggi
    212
    Ho provato con vari tentativi ma mi sa che non ho capito cosa fare...
    In realtà mi interessava creare qualcosa partendo da zero senza implementare altri contolli...

    Ho visto su MSDN qualcosa del tipo IEnumerator, ITemplate... non so se centrano con quello che voglio fare io , ma di certo c'e' che sto impazzendo...

    Help me!

  5. #5
    Utente di HTML.it L'avatar di Ottavio
    Registrato dal
    Jul 2000
    Messaggi
    286
    codice:
     
    Public Property DataSource() As DataTable
            Get
                DataSource = lo prendi da dove lo usi....
            End Get
            Set(ByVal Source As DataTable)
                ne fai quello che vuoi = Source
                Session("Dt") = Source
            End Set
    
        End Property
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    Era un mondo adulto, si sbagliava da professionisti....
    <P.Conte>
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.