asp:DropDownList服务器调用没有回发

时间:2012-08-13 18:39:52

标签: c# asp.net .net vb.net

我刚开始使用visual basic

my code 1的一些镜头 Code 2

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

问题如何根据第一个下拉选项填写第二个下拉列表并保留所有数据?

2 个答案:

答案 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?