Ich bin ziemlich neu in Visual Studio. Ich arbeite gerade jetzt an Visual Studio Express 2013 und ich versuche, ein bestimmtes Textfeld in ASP.netFüllen eines Textfeldes von DropDownList Selection füllte sich mit CascadingDropDown
zu füllen Ich fasse alles so gut ich kann (ich bin kein englischer Muttersprachler)
Zuerst hatte ich dieses Problem mit der ungültigen Postback-Sache. Ich habe nur eine richtige Lösung hier gefunden: https://johanleino.wordpress.com/2009/11/17/cascadingdropdown-causes-invalid-postback-or-callback-argument-error/ Also, das ist, warum ich NoValidationDropDownList statt klassischer Dropdown habe
Auch, ich habe 2 Dropdown des Ajax CascadingDropDown mit (Ich bin die zweite Füllung auf dem ausgewählten je Wert des ersten)
meiner Sicht hier:
<asp:TableCell>
<asp:NoValidationDropDownList OnSelectedIndexChanged="DropDownListVille_SelectedIndexChanged" ID="DropDownListVille" runat="server" class="ddlVille" ></asp:NoValidationDropDownList>
<ajax:CascadingDropDown ID="CascadingDropDown1" runat="server" Category="Ville"
TargetControlID="DropDownListVille" PromptText="Non définie" LoadingText="Chargement des villes"
ServiceMethod="AfficherVille" ServicePath="CascadingDropDown.asmx"></ajax:CascadingDropDown>
</asp:TableCell>
<asp:TableCell runat="server">
<asp:NoValidationDropDownList ID="DropDownListRue" runat="server" class="ddlRue" OnSelectedIndexChanged="DropDownListVille_SelectedIndexChanged"></asp:NoValidationDropDownList>
<ajax:CascadingDropDown ID="ccdRegion" runat="server" Category="Rue" ParentControlID="DropDownListVille"
TargetControlID="DropDownListRue" PromptText="Non définie" LoadingText="Chargement des rues"
ServiceMethod="VilleRueLier" ServicePath="CascadingDropDown.asmx"></ajax:CascadingDropDown>
</asp:TableCell>
<asp:TableCell>
<asp:TextBox ID="TextBoxCP" runat="server" class="tbcp"></asp:TextBox>
</asp:TableCell>
Meine erste Drop-Down-Städte haben, haben zweite Straßen und meine Textbox haben Postleitzahl. Alle Daten kommen von einem DB dieser zwei Tabellen:
Ville (Id_Ville, nom_ville, code_postal) übersetzt in
city(id_city,city_name,postcode)
Rue (Id_Rue, Nom_Rue) in
übersetztstreet(id_street,street_name)
Ich möchte die Postleitzahl abhängig von der Identifikation der ausgewählten Stadt dynamisch ändern (diese Identifikation wird als ein Wert in der Dropdownliste gespeichert).
Siehe, wenn die Stadt, die der Benutzer möchte, nicht in der db ist, kann er einen speziellen Wert der ersten Dropdownbox auswählen und eine neue Stadt hinzufügen.
Wenn er das tut, zeigt die Seite einige Textbox mit Ajax.
Dort kann der Benutzer eine neue Stadt mit seiner Postleitzahl hinzufügen. Sonst ist die Postleitzahl TextBox nur readonly.
Aber wenn er eine gelistete Stadt auswähle, möchte ich, dass sich der Textkasten füllt.
Es ist meine WebService Methoden, zum CascadingDropDown verbunden:
[System.Web.Script.Services.ScriptService()]
public class WebService1 : System.Web.Services.WebService
{
private Passerelle.Passerelle passerelle = new Passerelle.Passerelle();
[WebMethod]
public CascadingDropDownNameValue[] AfficherVille(string knownCategoryValues, string category)
{
List<CascadingDropDownNameValue> VilleDetails = new List<CascadingDropDownNameValue>();
ListVille listeVille = new ListVille();
listeVille = passerelle.getListVille();
foreach (Ville v in listeVille.List)
{
string idVille = v.IdVille.ToString();
string nomVille = v.NomVille.ToString();
VilleDetails.Add(new CascadingDropDownNameValue(nomVille, idVille));
Debug.WriteLine("Id Ville = " + idVille + " ----- NomVille = " + nomVille);
}
return VilleDetails.ToArray();
}
[WebMethod]
public CascadingDropDownNameValue[] VilleRueLier(string knownCategoryValues, string category)
{
///GET DATA FROM SQL
ListRue listeRue = new ListRue();
StringDictionary VilleDetails = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
int idVille = Convert.ToInt32(VilleDetails["Ville"]);
List<CascadingDropDownNameValue> countrydetails = new List<CascadingDropDownNameValue>();
//Here I get the data from my table 'Rue' with the ID coming from
listeRue = passerelle.getListRue(idVille);
countrydetails.Add(new CascadingDropDownNameValue("Pas dans la liste", "-1"));
foreach (Rue r in listeRue.list)
{
string idRue = r.idRue.ToString();
string nomRue = r.nomRue.ToString();
countrydetails.Add(new CascadingDropDownNameValue(nomRue, idRue));
Debug.WriteLine("Id rue = " + idRue + " ----- NomRue = " + nomRue);
}
return countrydetails.ToArray();
}
}
ich viele Dinge ... Klassische Ereignisse auf einige Ajax-Funktionsaufrufe ausprobiert habe. Und ich kann einfach nicht herausfinden, wie man das macht ...
Und natürlich folge ich klassischen MVC-Muster. Also ... Keine SQL-Anfrage in der Ansicht.
Ich bin nicht gut mit Ajax. Ich vermisse wahrscheinlich einige großartige Ajax/asp.net-Funktion mit einem anderen webMethod.
Vielen Dank an jeden, der mir helfen kann.
Und Entschuldigung für alle Rechtschreib-/Grammatikfehler.
Ich werde nicht in der Lage sein, für einige Stunden zu antworten (Ich werde in etwa ~ 12 Stunden zurückkommen) Wenn Sie irgendwelche Fragen haben ... Ich werde da sein, um Ihnen zu antworten.