89 messaggi dal 09 agosto 2001
Salve ho questo problema all'interno di un datagrid ho due dropdown collegate nel senso che il contenuto della seconda è legato al contenuto della prima.

Il classico esempio potrebbe essere regioni (cboUno) città (cboDue)

in fase di disegno della grid, quando entro in modalità edit, non ci sono problemi a popolare correttamente la seconda dropdown in fase di itemdatabound.

Il mio problema è capire come gestire il cambiamento dei dati nella prima combo per scatenare l'evento di aggiornamento della seconda.

Cerco di spiegarmi meglio

La prima combo ha AutoPostBack=true ed OnSeleciotnChanged="ModSel"
ModSel è una sub creata ad hoc con aromenti (seder, e as EventArgs) ma non posso impostarla come Handler di una combo che viene creata all'interno del datagrid (e temo sia proprio questo il mio problema)
Ora ovviamente in questa funzione non riesco a fare cose tipo

Dim cboUno as DropDownList=Ctype( e.item.FindControl("PrimaCombo"),DropDown)
Dim cboDue as DropDownList=Ctype( e.item.FindControl("SecondaCombo"),DropDown)

e via così e quindi non riesco a scatenare l'evento di aggiornamento della seconda

Penso che la soluizione al mio problema sia la corretta dichiarazione della Sub ModSel o della prima combo in modalità edit

Grazie fin d'ora
Max

Massimiliano Mascherin
114 messaggi dal 19 marzo 2004
Se vai alla seguente pagina
http://it.gotdotnet.com/quickstart/aspplus/

e quindi alla sezione
Accesso ai dati sul lato server

trovi l'esempio per te.
Se hai problemi ... fammi sapere.
89 messaggi dal 09 agosto 2001
Ciao ho trovato una soluzione al mio problema
Ho fatto così

Nella parte aspx ho dichiarato le due drowdownlist così

'Combo che scatena il cambiamento
<asp:DropDownList id="cboModCatTicket" Runat="server" width="100%" AutoPostBack=True OnSelectedIndexChanged="CambioCategoria" />
'Combo che verrà aggiornata
<asp:DropDownList id="cboModSottoCatTicket" Runat="server" />

Nella parte vb della pagina ecco il metodo che risolve il problema (ovviamente la parte di accesso al db è personalizzata per le mie esigenze)

Public Sub CambioCategoria(ByVal sender As Object, ByVal e As EventArgs)
Dim dgr As DataGrid = Me.dgrTicket
Dim i As Integer

For i = 0 To dgr.Items.Count
If i = dgr.EditItemIndex Then
Try
Dim cboCat As DropDownList = CType(dgr.Items(i).FindControl("cboModCatTicket"), DropDownList)
Dim cboSottoCat As DropDownList = CType(dgr.Items(i).FindControl("cboModSottoCatTicket"), DropDownList)

Dim MyDBSubCatTk As New ClassBR.BR_SubCategorieTicket()
Dim dsSubCatTk As DataSet = MyDBSubCatTk.Elenco_x_idcat(CType(cboCat.SelectedItem.Value, Integer))

'Carico la combo dei nuovi nominativi
cboSottoCat.DataSource = dsSubCatTk
cboSottoCat.DataTextField = "Descrizione"
cboSottoCat.DataValueField = "IDSottoCat"
cboSottoCat.DataBind()

cboSottoCat.SelectedIndex = -1
cboSottoCat.Items.FindByValue(cboCat.SelectedItem.Value).Selected = True
Catch ex As Exception
End Try
End If
Next

End Sub

Grazie a tutti
Max

Massimiliano Mascherin

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.