2011-07-15 7 views
-1

私は2つのデータソースで、2 dropdownlists「国」と「都市」を持っている:ユーザーが最初のインデックスを選択した場合でコードをputingせずにドロップダウンリストのステータスをVB.NET-キープ「未IsPostBackプロパティ」

  1. ddl諸国では、彼はddl都市で世界のすべての都市を見ることができます(datasource1を使用します)。

  2. ユーザーが国を選択すると、選択した国(対応する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

答えて

0

EnableViewStateこれは問題を解決するはずです。あなたのバインディングはnot page.ispostbackとしてください。

+0

こんにちはDavid、私はispostbackではなくdatabindを入れようとしましたが、enableViewStateはTrueと同じにしました。しかし、私がispostbackに入れると、データソースは変更されません。私が選んだ国を問わず、常にdatasource1を使用します。 – ziliu

+0

@zilu 1番目のドロップダウンのselectedinxedchangedイベントで2番目のドロップダウンのデータソースを変更する必要があります。ドロップダウンリストでautopostback = trueを指定してください。 – David

+0

ありがとう、David。私はあなたのアドバイスに従ってそれを行うことができました:) – ziliu

関連する問題