Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Caricare valori in due dropdownlist da due tabelle diverse

    salve a tutti amici.
    Vi spiego brevemente la struttura delle tabelle che sono coinvolte in questa selezione delle dropdownlist: nella Tabella1 ho una lista di servizi offerti come ad esempio "Camera Albergo", "Coperto ristorante"; nella tabella2 ho una serie di dettagli: "2 adulti+lettino", "2adulti+2lettini", "Tavolo da 5 coperti" ecc ecc
    Ogni servizio è identificato da un id e ogni dettaglio è agganciato al servizio padre proprio tramite l'id. Pertanto tutto quello che avrà a che fare con "Camera Albergo" avrà sempre ID=1, tutto quello che avrà a che fare con "Coperto ristorante" avrà ID=2 e così via...
    nella mia pagina aspx ho due combobox. E' possibile che alla selezione di un valore nella prima combo (ammettiamo "camera albergo"), la seconda venga popolata solo dai dettagli corrispondenti (e quindi "2adulti+lettino" e "2adulti+2lettini", sempre rimanendo con lo stesso esempio)??
    Le query per fare ciò le ho già fatte, solo che non riesco a gestire il posizionamento della parte di codice per popolare la seconda combo all'interno del Page_Load poichè quando seleziono uno qualsiasi degli elementi vorrei che la pagina si ricaricasse per far scattare le query e quindi popolare le combo.
    Grazie a chiunque riuscirà a darmi una mano.

    p.s:spero si sia capito come sono strutturate tra loro le tabelle...

  2. #2
    Devi settare la proprietà AutoPostBack a true sulla prima DropDownList.
    Così quando cambi elemento viene scatenato il postback e quindi eseguito l'evento "SelectedIndexChanged".
    Qua puoi popolare la seconda DropDownList .

    Spero d essere stato chiaro


  3. #3
    Originariamente inviato da Nikk11
    Devi settare la proprietà AutoPostBack a true sulla prima DropDownList.
    Così quando cambi elemento viene scatenato il postback e quindi eseguito l'evento "SelectedIndexChanged".
    Qua puoi popolare la seconda DropDownList .

    Spero d essere stato chiaro

    Ti ringrazio della risposta.Appena posso vedrò di provare.

  4. #4
    provato come hai detto e funziona tutto correttamente. Non ci sarebbe la possibilità al primo caricamento della pagina che le due dropdown vengano automaticamente popolate??Mi spiego meglio: nella prima drop ho solo visivamente il valore "Camera" che però di fatto non è selezionato (ho messo un response.write sull'id della voce della combo e al caricamento appunto, è vuoto). Conseguentemente la seconda dropdown non è valorizzata.
    COme è possibile fare selezionare automaticamente il primo valore e di conseguenza far si che venga valorizzata anche la seconda dropdown?

    grazie.

  5. #5
    Originariamente inviato da motogpdesmo16

    COme è possibile fare selezionare automaticamente il primo valore e di conseguenza far si che venga valorizzata anche la seconda dropdown?

    grazie.
    Dopo aver fatto il databind, oppure caricato manualmente gli items nella tendina,
    devi settare la proprietà "selectedvalue" con il codice dell'elemento che t interessa selezionare.


  6. #6
    Originariamente inviato da Nikk11
    Dopo aver fatto il databind, oppure caricato manualmente gli items nella tendina,
    devi settare la proprietà "selectedvalue" con il codice dell'elemento che t interessa selezionare.

    Il fatto è che dopo il databind è correttamente selezionato "Camera", ma non è attivo, nel senso che se ci clicco sopra non riesco a selezionarlo per poi passarlo come valore alla query che fa la seconda estrazione (quella dei dettagli).
    Può forse dipendere dal fatto che il caricamento della prima combo avviene al Page _load compreso in un If Not page.postback....endif??

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    in effetti ti hanno già risposto; non so se ti possa servire. E' il classico REGIONI-PROVINCE

    codice:
    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                libreria.ModuloWeb.FillListControl(this.regioni, MioModulo.StringaConnessioneTest, "regioni", "NOME_REGIONE", "CODICE_ISTAT_REGIONE");
                this.regioni.SelectedIndex = 0;
                this.regioni_SelectedIndexChanged(this.regioni, EventArgs.Empty);
                
            }
        }
    
        protected void regioni_SelectedIndexChanged(object sender, EventArgs e)
        {
            string codice_istat_regione = ((DropDownList)sender).SelectedValue;
            string sql = string.Format("SELECT * FROM Q_PROVINCIE WHERE CODICE_ISTAT_REGIONE = \"{0}\" ", codice_istat_regione);
            libreria.ModuloWeb.FillListControl(this.province, MioModulo.StringaConnessioneTest, sql, "nome_provincia", "CODICE_ISTAT_PROVINCIA");
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Pagina senza titolo</title>
        <link href="../stili/Styles.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <form id="form1" runat="server">
            <table>
                <tr>
                    <td>regioni</td>
                    <td>province</td>
                </tr>
                <tr>
                    <td><asp:DropDownList ID="regioni" runat="server" AutoPostBack="true" OnSelectedIndexChanged="regioni_SelectedIndexChanged"></asp:DropDownList></td>
                    <td><asp:DropDownList ID="province" runat="server" Width="187px"></asp:DropDownList></td>
                </tr>
            </table>
        </form>
    </body>
    </html>
    Pietro

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.