C# AJAX CascadingDropDown视图状态问题

C# AJAX CascadingDropDown视图状态问题,c#,.net,vb.net,ajax,cascadingdropdown,C#,.net,Vb.net,Ajax,Cascadingdropdown,问题:回发后,如何维护查询内容和两个下拉列表的选定值 源代码:从这个链接下载我的源代码现在可以工作了。只需添加对AjaxControlToolkit的引用 用户操作:从每个下拉列表中选择一个值。单击提交。 回发后:StatesDrop:Selected值,城市拖放选择一个城市 前后: 我相信,当第一个下拉列表获得其选定值时,第二个下拉列表将刷新并因此丢失其选定值 C欢迎回答 Default.aspx 要在回发上维护DropDownList的内容,请确保加载codebehind中控件的逻辑位于if

问题:回发后,如何维护查询内容和两个下拉列表的选定值

源代码:从这个链接下载我的源代码现在可以工作了。只需添加对AjaxControlToolkit的引用

用户操作:从每个下拉列表中选择一个值。单击提交。 回发后:StatesDrop:Selected值,城市拖放选择一个城市

前后:

我相信,当第一个下拉列表获得其选定值时,第二个下拉列表将刷新并因此丢失其选定值

C欢迎回答

Default.aspx


要在回发上维护DropDownList的内容,请确保加载codebehind中控件的逻辑位于if语句中,以检查它是否为回发。例如

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            //Load Controls
        }
    }

从控件中保留数据将由viewstate完成

因为依赖下拉列表中的项目是在客户端填充的。服务器对此一无所知。您必须在每个回发邮件上填充从属下拉列表中的项目。因此,在页面加载中编写以下代码

if(!IsPostBack) {
 //Some logic
}
else {
    //populate child drop down list on the base of selected value of parent drop down. 
// you can set the selected value of child control by getting the selected value from Request //object for example write following code to set the value of child control

childControl.SelectedValue = Request[childControl.UniqueID];
}

希望这会有所帮助。

我放弃了CascadingDropDown,而是使用常规回发和更新面板。

刷新页面时,下拉列表是否会重新加载其值?是否可以发布默认的.aspx的codebehind文件?控件是aspx代码的一部分。我不需要在页面加载例程中加载任何内容。请提供我的源代码的修改版本。如果行得通,我就接受。不行。重置子下拉列表的客户端代码在页面加载后甚至在页面卸载后调用。另外,在表单_load and unload中,两个下拉列表只有1项,这是每个下拉列表的SelectedValue;
Imports System.Web.Services
Imports System.Web.Script.Services
Imports AjaxControlToolkit

Partial Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Submit_Click(ByVal sender As Object, _
                               ByVal e As EventArgs) Handles SubmitBtn.Click
        ResultsGrid.DataBind()
    End Sub
End Class
protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            //Load Controls
        }
    }
if(!IsPostBack) {
 //Some logic
}
else {
    //populate child drop down list on the base of selected value of parent drop down. 
// you can set the selected value of child control by getting the selected value from Request //object for example write following code to set the value of child control

childControl.SelectedValue = Request[childControl.UniqueID];
}