0

我刚开始使用visual basic

我的代码 1 代码 2的一些照片

我有一个asp:DropDownList回复AutoPostBack="true"的内容是根据选择填充另一个下拉列表。

下面是处理第一个下拉列表选择的代码:

   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如果我在第一个下拉列表中选择任何 thisng,它不会做任何事情?

问题如何根据第一个下拉选择填充第二个下拉列表并保留我的所有数据?

4

2 回答 2

1

试试这个,你可能会有一些乐趣:asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/

于 2012-08-14T04:53:08.037 回答
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 ?

于 2012-08-13T18:50:38.037 回答