55 messaggi dal 09 settembre 2009
Ciao a tutti.
In una pagina aspx ho implementato del codice Ajax per il CascadingDropDown, dato che evita il ricaricamento della pagina per la lettura della seconda DropDownList dipendente dalla prima.
I dati selezionati poi vengono salvati sul database. Fin qui nessun problema, salvo che il valore della seconda DropDownList viene salvato in modo diverso. Esempio:
* item selezionato: 20090001
* valore della proprietà CascadingDropDown1.SelectedValue: 20090001:::20090001
Qualcuno saprebbe dirmi come mai fa questo lavoro?
Se non basta potrei farvi vedere il codice.
Grazie dell'eventuale aiuto.
55 messaggi dal 09 settembre 2009
Qualcuno?
51 messaggi dal 04 agosto 2008
Ciao,
hai provato a vedere quanto vale DropDownList1.SelectedValue invece di CascadingDropDown1.SelectedValue?
Salvo
55 messaggi dal 09 settembre 2009
giuffrixyz ha scritto:
Ciao,
hai provato a vedere quanto vale DropDownList1.SelectedValue?
Salvo


Incredibilmente è vuoto, anche se c'è un Item selezionato.
51 messaggi dal 04 agosto 2008
Ciao,
per come lo uso io, ti posso dire che il SelectedValue del CascadingDropDown è sempre composto da valore:::testo mentre il corrispondente del DropDownList contiene solo il valore.
Perciò ti direi che la vera stranezza non sta nel valore che ti restituisce la Cascading ma piuttosto nel fatto che sia vuoto il SelectedValue del DropDownList.
s
55 messaggi dal 09 settembre 2009
Il caricamento delle ddl avviene nel web service...

public CascadingDropDownNameValue[] GetCommesse(string knownCategoryValues, string category)
    {
        string[] _categoryValues = knownCategoryValues.Split(':', ';');
        string _Cod_Arca = Convert.ToString(_categoryValues[1]);
        List<CascadingDropDownNameValue> _commesse = new List<CascadingDropDownNameValue>();
        dsCommesseTableAdapters.CommesseTableAdapter _commessaAdapter = new dsCommesseTableAdapters.CommesseTableAdapter();
        foreach (DataRow _row in _commessaAdapter.GetCommesse(_Cod_Arca.ToString()))
        {
            _commesse.Add(new CascadingDropDownNameValue(_row["ID_Commessa"].ToString(), _row["ID_Commessa"].ToString()));
        }
        return _commesse.ToArray();
    }


...facendo riferimento agli schemi XML con classi DataSet.
Questo è il contenuto della pagina aspx:

<asp:ObjectDataSource ID="ODSClienti" runat="server" OldValuesParameterFormatString="original_{0}" 
            SelectMethod="GetClienti" TypeName="dsClientiTableAdapters.ClientiTableAdapter">
        </asp:ObjectDataSource>
        
        <ajaxToolkit:CascadingDropDown ID="CascadingDropDown1" runat="server" Category="Clienti" 
            LoadingText="Attendere..." ParentControlID="ddlCliente1" TargetControlID="ddlCommessa1" 
            ServicePath="ClientiCommesseService.asmx" ServiceMethod="GetCommesse" />
51 messaggi dal 04 agosto 2008
Perdonami se insisto ma mi hai mandato la parte di codice che secondo me sta funzionando correttamente... è ddlCommessa1.SelectedValue che dovrebbe contenere il valore che ti aspetti.
Se guardi il codice dell'esempio Microsoft:
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/CascadingDropDown/CascadingDropDown.aspx
trovi:
// Get selected values
string make = DropDownList1.SelectedItem.Text;
string model = DropDownList2.SelectedItem.Text;
string color = DropDownList3.SelectedItem.Text;

// Output result string based on which values are specified
if (string.IsNullOrEmpty(make))
{
    Label1.Text = "Please select a make.";
}
else if (string.IsNullOrEmpty(model))
{
    Label1.Text = "Please select a model.";
}
else if (string.IsNullOrEmpty(color))
{
    Label1.Text = "Please select a color.";
}
else
{
    Label1.Text = string.Format("You have chosen a {0} {1} {2}. Nice car!", color, make, model);
}

dove vedi che il valore non viene estratto dai CDD ma dai DDL.
Ciao
55 messaggi dal 09 settembre 2009
Però il metodo di caricamento è diverso, non so se ciò influenzi.
Nell'esempio si utilizza un documento xml, io invece carico le ddl in un'altra maniera.

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.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC