我刚开始使用visual basic
我有一个asp:DropDownList
AutoPostBack="true"
帖子后面做的是填写另一个Dropdownlist,具体取决于选择。
以下是处理第一个Dropdownlist选择的代码:
Public Sub checklistDropMenuChange(sender As Object, e As System.EventArgs) Handles checklistDropMenu.SelectedIndexChanged
If (checklistDropMenu.SelectedValue = -1) Then
taskDropMenu.Items.Clear()
taskDropMenu.Enabled = False
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "KeepAddChecklistPopup", "showPopup('addChecklisTaskopup', 'add new Task');", True)
Else
taskDropMenu.Enabled = True
taskList.SelectParameters("lngChecklist").DefaultValue = checklistDropMenu.SelectedValue
taskDropMenu.Enabled = True
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "KeepAddChecklistPopup", "showPopup('addChecklisTaskopup', 'add new Task');", True)
End If
End Sub
表单位于一个弹出式div中,当我进行任何选择时,页面后面会清空我在页面中除了两个DropDownLists
之外的所有数据。
注意我将AutoPostBack="true"
设置为false
,如果我在第一个下拉列表中选择任何这个,它没有做任何事情吗?
问题如何根据第一个下拉选项填写第二个下拉列表并保留所有数据?
答案 0 :(得分:1)
试试这个,你可能会有一些乐趣:asp.net/ajaxLibrary/AjaxControlToolkitSampleSite /
答案 1 :(得分:0)
这将需要回发或AJAX。如果您对全屏刷新感到满意,那么这将是一个相当容易解决的问题。
根据您的报告,听起来您可能在事件处理程序中设置默认数据,而不是检查这是否是初始帖子。你可以发布你的Page_Load事件处理程序吗?
建议更新的代码:
Public Sub checklistDropMenuChange(sender As Object, e As System.EventArgs) Handles checklistDropMenu.SelectedIndexChanged
If (checklistDropMenu.SelectedValue = -1) Then
taskDropMenu.Items.Clear()
taskDropMenu.Enabled = False
Else
taskDropMenu.Enabled = True
taskDropMenu.Items.Clear()
taskList.SelectParameters("lngChecklist").DefaultValue = checklistDropMenu.SelectedValue
taskDropMenu.DataBind()
End If
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "KeepAddChecklistPopup", "showPopup('addChecklisTaskopup', 'add new Task');", True)
End Sub
我假设taskList是某种ObjectDataSource?