当dropdownlist1选择发生变化时,ASP.NET,刷新下拉列表2?

时间:2012-03-13 09:16:58

标签: asp.net

我有两个数据绑定下拉列表控件。第一个(dropdownlist1)直接从表中提取。第二个(dropdownlist2)也从表中提取,但在其WHERE子句中使用dropdownlist1中的选定值。

用户在dropdownlist1中进行选择后,如何更新/刷新dropdownlist2? (如果用代码完成,则使用VB)

我尝试将dropdownlist1的“自动回发”属性设置为“true”,最终,此方法有效。唯一的问题是,如果我不断更改dropdownlist1中的选择,则dropdownlist2中可用的选项会重复。

两个下拉列表控件都包含在使用模板的CreateUserWizard控件中。我已经尝试在dropdownlist1的SelectedIndexChanged事件中的dropdownlist2上使用FindControl和DataBind(),但是在dropdownlist1中进行选择后没有发生任何变化。

有什么想法吗?

SelectedIndexChanged事件

Protected Sub AssignedManager_SelectedIndexChanged(sender As Object, e As System.EventArgs)
    CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("AssignedSupervisor").DataBind()
End Sub

*上图,AssignedManager是第一个下拉列表,AssignedSupervisor是第二个下拉列表*

1 个答案:

答案 0 :(得分:0)

Protected Sub AssignedManager_SelectedIndexChanged(sender As Object, e As System.EventArgs) 
    CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("AssignedSupervisor").DataSource
     = GetDataSource(Ctype(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("FirstDropDownID"),Dropdownlist).SelectedValue)

    CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("AssignedSupervisor").DataBind()
End Sub

Protected function GetDataSource(string id) as DataTable
    'This function should return datatable based on the value (id) from the first dropdownlist
End Function