2011-11-26 5 views
0

BLLとDALクラスを使用してページロードのドロップダウンを埋めたいと思います。 これは、コードBLLからドロップダウンが行われない

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)  Handles Me.Load 
     dropBrand.DataSource = BLLManufacturer.selectManufacturers() 
     dropBrand.DataTextField = "ManufacturerName" 
     dropBrand.DataValueField = "ManufacturerID" 
     dropBrand.DataBind() 

     dropModel.DataSource = BLLModel.selectModelsByBrand(Convert.ToInt16(dropBrand.SelectedValue)) 
     dropModel.DataTextField = "ModelName" 
     dropModel.DataValueField = "ModelID" 
     dropModel.DataBind() 
    End Sub 

行うことになっているとして、最初のドロップダウンがブランドでいっぱいにあるが、2番目にはありません。 2番目のドロップダウンでは、最初のドロップダウンで選択したブランドの車種を表示する必要があります。ただし、dropBrand.SelectedValueは、ブランドを選択したときに常に0を返します。 convert toint16を使用しないと、toint32またはtoint64を変換しても変換できません。誰もがこれを修正する方法を知っていますか?

答えて

0

あなたが持っているものは、初期データをドロップダウンリストにバインドするだけなので、うまくいきません。

BLLManufacturerドロップダウンリストで起動するイベントを設定し、そのリストから選択した値を取得し、データをBLLModelリストにバインドする必要があります。大体このような何か(コードテストしていない) -

Private Sub BLLManufacturer_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles BLLManufacturer.SelectedIndexChanged 
     ' Get the currently selected item in the ListBox. 
     Dim curItem As String = BLLManufacturer.SelectedItem.ToString() 

     dropModel.DataSource = BLLModel.selectModelsByBrand(Convert.ToInt16(curItem)) 
     dropModel.DataTextField = "ModelName" 
     dropModel.DataValueField = "ModelID" 
     dropModel.DataBind() 
End Sub 

また、あなたはAJAXを経由してやりたいとページの投稿をバック避けることができます。

関連する問題