none
ContentTemplate e oggetti asp.net RRS feed

  • Domanda

  • Perchè se inserisco oggetti asp.net come gridview, textbox ecc dentro un ContentTemplate non riesco più a vederli? mi da infatti questo errore:

     

    Errore di compilazione

    Descrizione: Errore durante la compilazione di una risorsa necessaria per soddisfare la richiesta. Rivedere i dettagli relativi all'errore e modificare in modo appropriato il codice sorgente.

    Messaggio di errore del compilatore: CS0103: Il nome 'GridView1' non esiste nel contesto corrente.

     

    Errore nel codice sorgente:

    Riga 29:   da = new SqlDataAdapter(sql1, conn);

    Riga 30: da.Fill(ds, "prodotti");

    Riga 31: GridView1.DataSource = ds.Tables[0];


    Riga 32: GridView1.DataBind();

    Riga 33: }

     

    stessa cosa con combobox, textbox ecc come posso risolvere il problema?

    questo è il content template: <artisteer:Article ID="Article2" Caption="Chiavi - Bussole" runat="server"><ContentTemplate>

    • Modificato fabio84 martedì 28 dicembre 2010 12:28 dettagli
    martedì 28 dicembre 2010 12:25

Risposte

  • Ciao fabio84,

    You wrote on 28/12/2010 :

    Perchè se inserisco oggetti asp.net come gridview, textbox ecc dentro un ContentTemplate non riesco più a vederli? mi da infatti questo errore:

    [CUT]

    stessa cosa con combobox, textbox ecc come posso risolvere il problema?

    perchè quegli oggetti una volta inseriti come template verranno replicati tante volte quante sono le righe e quindi non ha senso farvi riferimento in quel modo, devi agganciare il processo di binding e usare "find control" per ogni item.

    .m


    Mauro Servienti
    {C67C0157-5D98-4733-A75E-93CAEE4BADC8}
    Microsoft MVP - Visual C# / MCTS
    http://mvp.support.microsoft.com
    blog @ http://milestone.topics.it
    whynot [ at ] topics [ dot ] it
    martedì 28 dicembre 2010 12:32
  • Ciao Fabio,

    cito dalla libreria MSDN:

    FindControl(String)  Cerca un controllo server nel contenitore dei nomi corrente con il parametro id specificato.

    L'esempio è molto autospiegante.

    Saluti, Daniel.


    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e farli aumentare la conoscenza sui prodotti e le tecnologie Microsoft.
    martedì 28 dicembre 2010 16:00
  • Ciao fabio84,

    You wrote on 28/12/2010 :

    grazie per la risposta mauro scusami ma non sono espertissimo puoi aggiungermi qualche dettaglio sul "find control"?

    per integrare quello che ti ha detto Daniel:

    protected void OnItemCreated( object sender, RepeaterItemEventArgs e )
    {
      var inner = e.Item.FindControl( "nestedControl" ) as Repeater;
      if( inner != null )
      {
      }
    }

    questo è l'handler che intercetta il processo di DataBinding per ognuno degli elementi di un repeater e "cerca" all'interno del template un altro Repeater che si chiama nestedControl.

    .m


    Mauro Servienti
    {C67C0157-5D98-4733-A75E-93CAEE4BADC8}
    Microsoft MVP - Visual C# / MCTS
    http://mvp.support.microsoft.com
    blog @ http://milestone.topics.it
    whynot [ at ] topics [ dot ] it
    mercoledì 29 dicembre 2010 06:25

Tutte le risposte

  • Ciao fabio84,

    You wrote on 28/12/2010 :

    Perchè se inserisco oggetti asp.net come gridview, textbox ecc dentro un ContentTemplate non riesco più a vederli? mi da infatti questo errore:

    [CUT]

    stessa cosa con combobox, textbox ecc come posso risolvere il problema?

    perchè quegli oggetti una volta inseriti come template verranno replicati tante volte quante sono le righe e quindi non ha senso farvi riferimento in quel modo, devi agganciare il processo di binding e usare "find control" per ogni item.

    .m


    Mauro Servienti
    {C67C0157-5D98-4733-A75E-93CAEE4BADC8}
    Microsoft MVP - Visual C# / MCTS
    http://mvp.support.microsoft.com
    blog @ http://milestone.topics.it
    whynot [ at ] topics [ dot ] it
    martedì 28 dicembre 2010 12:32
  • grazie per la risposta mauro scusami ma non sono espertissimo puoi aggiungermi qualche dettaglio sul "find control"?

    martedì 28 dicembre 2010 14:53
  • Ciao Fabio,

    cito dalla libreria MSDN:

    FindControl(String)  Cerca un controllo server nel contenitore dei nomi corrente con il parametro id specificato.

    L'esempio è molto autospiegante.

    Saluti, Daniel.


    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e farli aumentare la conoscenza sui prodotti e le tecnologie Microsoft.
    martedì 28 dicembre 2010 16:00
  • Ciao fabio84,

    You wrote on 28/12/2010 :

    grazie per la risposta mauro scusami ma non sono espertissimo puoi aggiungermi qualche dettaglio sul "find control"?

    per integrare quello che ti ha detto Daniel:

    protected void OnItemCreated( object sender, RepeaterItemEventArgs e )
    {
      var inner = e.Item.FindControl( "nestedControl" ) as Repeater;
      if( inner != null )
      {
      }
    }

    questo è l'handler che intercetta il processo di DataBinding per ognuno degli elementi di un repeater e "cerca" all'interno del template un altro Repeater che si chiama nestedControl.

    .m


    Mauro Servienti
    {C67C0157-5D98-4733-A75E-93CAEE4BADC8}
    Microsoft MVP - Visual C# / MCTS
    http://mvp.support.microsoft.com
    blog @ http://milestone.topics.it
    whynot [ at ] topics [ dot ] it
    mercoledì 29 dicembre 2010 06:25