私は2つのデータソースで、2 dropdownlists「国」と「都市」を持っている:ユーザーが最初のインデックスを選択した場合でコードをputingせずにドロップダウンリストのステータスをVB.NET-キープ「未IsPostBackプロパティ」
ddl諸国では、彼はddl都市で世界のすべての都市を見ることができます(datasource1を使用します)。
ユーザーが国を選択すると、選択した国(対応するdatasource2)に対応する都市が表示されます。 データソースを変更するためのコードをvb.netを使用してPage_Loadで使用するコードに置きますが、ユーザーが都市を選択して[送信]ボタンをクリックすると、ドロップダウンリストの都市はステータスを保持できず、このddlの
私は、そうでない場合はIdPostBackにこのコードを入れてみましたが、それはドロップダウンリストの状態を保つことができる一方で、このように、それは、データソースを変更しません。
だから誰もこの問題について考えていますか?
私が参照としてここにコードを置く:事前に
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim ddlCities As DropDownList
Dim ddlCountries As DropDownList
ddlCities = CType(PN_Search.FindControl("DropDownList_Cities"), System.Web.UI.WebControls.DropDownList)
ddlCountries = CType(PN_Search.FindControl("DropDownList_Countries"), System.Web.UI.WebControls.DropDownList)
Dim countrySelect As String
countrySelect = ddlCountries.SelectedValue
Dim rechercheCitiesNull As String = "SELECT * FROM Cities WHERE id_city=1"
Dim rechercheCitiesNotNull As String = "SELECT * FROM [View_Country_City] Where id_country=" & countrySelect
If countrySelect = "" Then
Me.RechercheCitiesDS.SelectCommand = rechercheCitiesNull
ddlCities.EnableViewState = True
ddlCountries.EnableViewState = True
ddlCities.DataBind()
ElseIf countrySelect <> "" Then
Me.RechercheCitiesDS.SelectCommand = rechercheCitiesNotNull
ddlCities.DataBind()
End If
End Sub
感謝を! Ziliu
こんにちはDavid、私はispostbackではなくdatabindを入れようとしましたが、enableViewStateはTrueと同じにしました。しかし、私がispostbackに入れると、データソースは変更されません。私が選んだ国を問わず、常にdatasource1を使用します。 – ziliu
@zilu 1番目のドロップダウンのselectedinxedchangedイベントで2番目のドロップダウンのデータソースを変更する必要があります。ドロップダウンリストでautopostback = trueを指定してください。 – David
ありがとう、David。私はあなたのアドバイスに従ってそれを行うことができました:) – ziliu