Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573

    DropDownList in Edit Datagrid

    Ciao a tutti,
    ho un piccolo problemino che non so risolvere... se quancuno può darmi un'indicazione.
    In un datagrid ho un valore che in fase editabile mi diventa una ddl: il fatto è che vorrei che quando questa viene caricata abbia settato il valore attuale e non il primo della lista!
    Spero di essermi spiegata... cmq ecco come carico i valori:

    Protected Sub PopulateDropDownList()
    Conn.Open()
    sql = "SELECT Id_As, Denominazione FROM T_AssociazioneSportiva ORDER BY Denominazione ASC"
    CmdSel = New OleDbDataAdapter(sql, Conn)
    ds = New DataSet
    CmdSel.Fill(ds, "AS")

    TempDataView = ds.Tables("AS").DefaultView
    Conn.Close()
    End Sub

    Sub dg_Edit(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
    PopulateDropDownList()
    BindData(e.Item.ItemIndex)
    End Sub
    Grazie,
    Elisa

  2. #2
    usa la proprietà selectedindex della dropdownlist
    con quella ottieni o imposti l'indice dell'elemento da visualizzare come selected

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573
    Si ma come? Cioè qual è la sintassi da usare mentre la popolo?

  4. #4
    all'interno del tuo metodo PopulateDropDownList() metterai
    [nomeDropDownList].SelectedIndex = [indice da impostare come selected]

    es.

    ddl.SelectedIndex = 2;

    vuol dire che sarà selezionato l'item di indice 2 (quindi il terzo elemento dato che l'indice parte da zero)

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573


    niente da fare non ci riesco anche perchè la carico con un DataView... quindi forse è nel codice della ddl che dovrei specificare il valore SelectedIndex:

    <aspropDownList CssClass=txt9 id=ddlAS runat="server" datavaluefield="Id_AS" datatextfield="Denominazione" DataSource="<%#TempDataView%>" SelectedIndex="---QUI--- " />

  6. #6
    lo devi fare da codice
    all'interno dell'evento che renderizza la tua detailsview, e cioè prima che venga stampata a video, imposti il valore selectedindex all'indice voluto

  7. #7
    Originariamente inviato da elisa_rm74
    ... quindi forse è nel codice della ddl che dovrei specificare il valore SelectedIndex:

    <aspropDownList CssClass=txt9 id=ddlAS runat="server" datavaluefield="Id_AS" datatextfield="Denominazione" DataSource="<%#TempDataView%>" SelectedIndex="---QUI--- " />
    si, puoi farlo anche cosi. Es.

    aspropDownList CssClass=txt9 id=ddlAS runat="server" datavaluefield="Id_AS" datatextfield="Denominazione" DataSource="<%#TempDataView%>" SelectedIndex='<%# GetASIndex(DataBinder.Eval(Container, "DataItem.Id_As")) %>' />

    Poi devi mettere nel codebehind una funzione chiamata GetASIndex che accetta un parametro intero rappresentante il valore da selezionare e che lo cerchi nell'insieme di valori restituendo il relativo index
    Saluti a tutti
    Riccardo

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    Puoi farlo nell'ItemDataBound così:

    codice:
         Private Sub DataGrid_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles Datagrid.ItemDataBound
            ' Se in edit
            If e.Item.ItemType = ListItemType.EditItem Then
                Dim DRV As DataRowView = CType(e.Item.DataItem, DataRowView)
                Dim Current As String = DRV("campocorrentedelDB")
    
                -- poi riempi la DropDownList (DDL) --
    
                Dim item As New ListItem
    
                ' Mi posiziono sull'item del record corrente
                item = DDL.Items.FindByText(Current)
                If Not item Is Nothing Then item.Selected = True
            End If
        End Sub

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573
    Ragazzi grazie a tutti, sembra finalmente risolto!

    Ciao Elisa

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