Visual Studioの新機能です。私は今Visual Studio Express 2013で作業しています。ASP.netの特定のテキストボックスを埋めようとしていますDropDownListからのテキストボックスの入力セレクション自体がCascadingDropDownで埋められました
私は可能な限りすべてを要約します(私は母国語ではありません)
まず、無効なポストバックの問題でこの問題が発生しました。私は右ここに一つだけ正解を見つけた:また
、私は(私は選択に応じて、第二1を充填していますAJAX CascadingDropDownを使用して2のDropDownListを持って、私は代わりに、古典的なドロップダウンリストのNoValidationDropDownListを持っている理由https://johanleino.wordpress.com/2009/11/17/cascadingdropdown-causes-invalid-postback-or-callback-argument-error/ だから、それはです最初の1の値)
はここに私の見解です:
<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>
私の最初のドロップダウンが都市を持って、もう一つは通りを持っていると私のテキストボックスは、郵便番号を持っています。すべてのデータは、これら2つのテーブルを用いたものDBから来ている:
ヴィル(Id_Ville、nom_ville、code_postal)
street(id_street,street_name)
で翻訳
city(id_city,city_name,postcode)
ルー(Id_Rue、Nom_Rue) で翻訳 選択した都市のIDに応じて郵便番号を動的に変更したい(このIDはドロップダウンリストの値として保存されます)。
ユーザーが望む都市がデータベースにない場合は、最初のドロップダウンボックスの特別な値を選択して新しい都市を追加することができます。
これを行うと、ページにはajaxを含むテキストボックスが表示されます。
ここで、ユーザーは郵便番号の新しい都市を追加できます。そうでなければ、郵便番号TextBoxは読み取り専用です。
しかし、リストされた都市を選択するときは、テキストボックスを埋めてください。
cascadingDropDownにリンクされている私のWebサービスメソッド、あります:私はいくつかのAJAX関数呼び出しに多くのもの...クラシックイベントを試してみた
[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();
}
}
。 そして、私はそれを行う方法を理解できません...
もちろん、私は古典的なMVCパターンに従っています。だから...ビューにはSQLリクエストはありません。
私はajaxでうまくやっていません。 私はおそらく別のwebMethodといくつかの素晴らしいajax/asp.net機能がありません。
私を助けることができる誰かに感謝します。
すべてのスペル/文法の間違いをお詫びします。
私はいくつかの時間(私は約12時間のような何かに戻ってくるだろう)に答えることができなくなりますあなたが質問があれば...私はあなたに答えるためにそこに行きます。