Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    aggiungere un controllo in un <EditItemTemplate>

    Salve a tutti,
    secondo voi e' possibile inserire una nuova dropdownlist da codice, costruita al volo con opportuni items presi dal db, una volta andati in editing su un datagrid, all'interno dell'<edititemtemplate> ?

  2. #2

    Re: aggiungere un controllo in un <EditItemTemplate>

    non mi sembra particolarmente difficile anche se non ho capito bene cosa intendi per
    inserire una nuova dropdownlist da codice, costruita al volo
    quindi se non ho capito male basta che nel momento in cui vai in edit richiami una funzione che popola la dropdown e chiama il suo databind. Se la vuoi creare al volo (perche?) prima di fare quanto detto la crei e la aggiungi ad un contenitore di controlli (es. placeholder) posizionato nel punto che vuoi tu.
    Saluti a tutti
    Riccardo

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Re: Re: aggiungere un controllo in un <EditItemTemplate>

    Originariamente inviato da riccardone
    non mi sembra particolarmente difficile anche se non ho capito bene cosa intendi per ...

    quindi se non ho capito male basta che nel momento in cui vai in edit richiami una funzione che popola la dropdown e chiama il suo databind. Se la vuoi creare al volo (perche?) prima di fare quanto detto la crei e la aggiungi ad un contenitore di controlli (es. placeholder) posizionato nel punto che vuoi tu.

    Intendevo costruita da code-behind...La devo creare dinamicamente perchè deve contenere campi presi da un db.

    quindi tu intendi, avendo il placeholder posizionato in questo modo:
    codice:
    <edititemtemplate>
     <TABLE WIDTH="100%" BORDER="1" BORDERCOLOR="#6788A7"   
      CELLPADDING="0" CELLSPACING="0"> 
      <TR><TD ALIGN="left"  WIDTH="20%">IdGruppo:</TD>
      <TD ALIGN="left">
      <asp:placeholder ID="ph_gruppi" runat="server"></asp:placeholder>
      </TD></TR>
     </TABLE>
    </edititemtemplate>
    codice:
    Dim conta as Integer
    conta = 0
    Dim dd_gruppi as New DropDownList()
    While reader.read()
     Dim Testo as String
     Dim Valore as String
     Testo = reader("id").ToString & " - " & reader 
          ("descrizione").ToString
     Valore = reader("id").ToString
    					  
     Dim ListGruppo As New ListItem()
     ListGruppo.Text  = Testo
     ListGruppo.Value = Valore
     dd_gruppi.Items.Insert(conta, ListGruppo)
     conta = conta + 1
    End While   
    
    ph_gruppi.Controls.Add(dd_gruppi)
    ?

  4. #4

    Re: Re: Re: aggiungere un controllo in un <EditItemTemplate>

    Originariamente inviato da djciko
    Intendevo costruita da code-behind...La devo creare dinamicamente perchè deve contenere campi presi da un db.
    con quanto appena detto non e' chiaro se intendi piu' campi (colonne) oppure dicendo "campi presi da un db" intendi "valori" contenuti nel db. In quest'ultimo caso, come gia' detto, non vedo alcuna necessita' di "crearsi al volo" una drop down. Mettine una nella sezione edititem... della datagrid. Quando vai in edit, la popoli con tutti i valori presi dal db.
    Saluti a tutti
    Riccardo

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Re: Re: Re: Re: aggiungere un controllo in un <EditItemTemplate>

    Originariamente inviato da riccardone
    con quanto appena detto non e' chiaro se intendi piu' campi (colonne) oppure dicendo "campi presi da un db" intendi "valori" contenuti nel db. In quest'ultimo caso, come gia' detto, non vedo alcuna necessita' di "crearsi al volo" una drop down. Mettine una nella sezione edititem... della datagrid. Quando vai in edit, la popoli con tutti i valori presi dal db.
    Intendo VALORI presi da un DB..Ma il problema e' che questi valori li ottengo facendo una SELECT su una tabella diversa da quella su cui sono in edit !

    Secondo me inoltre ci stiamo "arravogliando" con le parole... Ti spiego meglio :

    Io ora sto tentando di aggiungere la DropDownList all'EditItem, dopo averla creata (senza DataBind), creando i ListItem con il testo che e' l'unione di due campi del risultato della (nuova) select...
    Ma continua a dirmi "Object reference not set to an instance of an object" sul pannello nel quale poi aggiungo la DropDown..

    Ho provato a fare un'unica SELECT in origine, prendendo anche i campi che mi servivano in JOIN....Ma il framework, quando tentavo di assegnare i due valori concatenati ad un <ASP:ListItem>, mi avvisava che quest'ultimo non support il Bind(). Giustamente.


    Spero di essere stato più chiaro..grazie della pazienza. :rollo:

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    nell'evento di edit del datagrid
    codice:
    Dim conta as Integer
    conta = 0
    Dim dd_gruppi as New DropDownList()
    While reader.read()
     Dim Testo as String
     Dim Valore as String
     Testo = reader("id").ToString & " - " & reader 
          ("descrizione").ToString
     Valore = reader("id").ToString
    					  
     Dim ListGruppo As New ListItem()
     ListGruppo.Text  = Testo
     ListGruppo.Value = Valore
     dd_gruppi.Items.Insert(conta, ListGruppo)
     conta = conta + 1
    End While   
    
    tuodatagrid.item(tuodatagrid.edititemindex).findcontrol("ph_gruppi").Controls.Add(dd_gruppi)
    questo lo devi fare quandi l'item del datagrid è in stato di edit

    Hey hey, my my Rock and roll can never die!

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Funziona, utilizzando pero' itemS al posto di item...(item è un metodo di System.Windows.Forms.DataGrid) -- Grazie 999 + 1 !!

    Ma come mai (sto sbattendo da ore ) non posso riferirmi ad un controllo interno ad un datagrid in questo modo ? :

    codice:
    Sub grid_licenze_EditCommand (s as Object, e  As 
        DataGridCommandEventArgs)
        grid_licenze.EditItemIndex = e.Item.ItemIndex		
        load_grid (<--- questa sub ricarica la grid)
        Dim place as New PlaceHolder
        place = e.Item.FindControl("ph_gruppi")
        .
        .
        .
        (credo la DropDown)
        place.add(dd_gruppi)
    End Sub
    Sbaglio il momento ? L'ITEM non è forse in edit quando scrivo :

    codice:
      grid_licenze.EditItemIndex = e.Item.ItemIndex	
      load_grid
    Oppure non sto operando su quel controllo (quello nel datagrid..) ?
    Boh !

    ...Inoltre, mi sbaglio o le cose si sono un pochettino COMPLICATE rispetto al passato ? (spunto di discussione...)(per passato intendo ASP classic !!)

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da djciko
    Funziona, utilizzando pero' itemS al posto di item...(item è un metodo di System.Windows.Forms.DataGrid) -- Grazie 999 + 1 !!

    Ma come mai (sto sbattendo da ore ) non posso riferirmi ad un controllo interno ad un datagrid in questo modo ? :

    codice:
    Sub grid_licenze_EditCommand (s as Object, e  As 
        DataGridCommandEventArgs)
        grid_licenze.EditItemIndex = e.Item.ItemIndex		
        load_grid (<--- questa sub ricarica la grid)
        Dim place as New PlaceHolder
        place = e.Item.FindControl("ph_gruppi")
        .
        .
        .
        (credo la DropDown)
        place.Controls.Add(dd_gruppi)
    End Sub
    Sbaglio il momento ? L'ITEM non è forse in edit quando scrivo :

    codice:
      grid_licenze.EditItemIndex = e.Item.ItemIndex	
      load_grid
    Oppure non sto operando su quel controllo (quello nel datagrid..) ?
    Boh !

    ...Inoltre, mi sbaglio o le cose si sono un pochettino COMPLICATE rispetto al passato ? (spunto di discussione...)(per passato intendo ASP classic !!)

  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    invece di modificare mi sono auto-quotato..Sorry sarà la stanchezza

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 © 2025 vBulletin Solutions, Inc. All rights reserved.