C# 如何获取Dropdownlist的即时选定值?

C# 如何获取Dropdownlist的即时选定值?,c#,asp.net,drop-down-menu,webforms,autopostback,C#,Asp.net,Drop Down Menu,Webforms,Autopostback,我有两个下拉列表,其中两个都具有自动回发功能。 当我从下拉列表1中选择时,它向下拉列表2发送一个id,下拉列表2显示与该id对应的数据。 但问题是,它不会在页面第一次启动时显示,并且总是显示以前选择的项目值 例如,当页面加载时,它会自动在下拉列表1中选择sayd。因此,它会在另一个下拉列表2中选择相应的名称。但是,当我启动应用程序时,它不会显示默认值的选定值。当我手动选择时,它会显示以前选定的值 我不知道为什么会发生这样的事情,有什么解决办法,任何人都可以提出吗 protected void P

我有两个下拉列表,其中两个都具有自动回发功能。 当我从下拉列表1中选择时,它向下拉列表2发送一个id,下拉列表2显示与该id对应的数据。 但问题是,它不会在页面第一次启动时显示,并且总是显示以前选择的项目值

例如,当页面加载时,它会自动在下拉列表1中选择sayd。因此,它会在另一个下拉列表2中选择相应的名称。但是,当我启动应用程序时,它不会显示默认值的选定值。当我手动选择时,它会显示以前选定的值

我不知道为什么会发生这样的事情,有什么解决办法,任何人都可以提出吗

protected void Page_Load(object sender, EventArgs e)
{ 
     if (!Page.IsPostBack) 
     { 
           ddwcategory.DataBind(); 
           ddwsubcat.DataBind();
     }
     else 
     {
           if (ddwsubcat.Items.Count <= 1)
           {
                 ddwsubcat.SelectedIndex = -1;
                 ddwsubcat.DataBind();
           } 
           Label1.Text = ddwsubcat.SelectedValue;
     }
}

似乎是回发问题。我建议您通过在页面加载时检查IsPostBack属性来绑定第一个DropDownList

另外,按照您所解释的,调试您的代码并检查每个测试用例。标记哪些事件和函数被执行,哪些值被添加到下拉列表中。

在页面加载方法中添加回发条件:

那东西确实有用

if (!Page.IsPostBack)
    {

        ddwcategory.DataBind();
        ddwsubcat.DataBind();

    }
    else
    {
        if (ddwsubcat.Items.Count <= 1)
        {
            ddwsubcat.SelectedIndex = -1;
            ddwsubcat.DataBind();
        }
      //  Label1.Text = ddwsubcat.SelectedValue;
        //ddwsubcat.DataBind();
    }
    String subcat = ddwsubcat.SelectedValue;

你的一些代码在外面!回发条件

protected void Page_Load(object sender, EventArgs e)
{ 
     if (!Page.IsPostBack) 
     { 
          // Bind your dropdownlists on page Load event
          ddwcategory.DataBind(); 
          ddwsubcat.DataBind();
          // Set default index if required

          Label1.Text = ddwsubcat.SelectedValue;
     }
}

将您的代码包装在if!中的pageLoad事件中!Page.IsPostBack{//您的代码}。当pageLoad代码在每个PostBack上执行时可能会发生这种情况没有人不帮忙,当我按照你说的做时,页面加载时会显示得很好。但是如果我转到另一个只有一个子类别的类别,它就不会显示它。再次,当我更改到另一个类别时,它的Atart会显示上一个类别。你是否尝试过指定dropdowlist的默认索引,如DropDownList。SelectedIndex=-1;这将始终选择第一个项目。它不能正常工作。虽然它现在更好。但经过一定数量的选择更改后。它不会更改,如果我选择另一个项目并再次访问该项目,它就会工作。为什么会发生/但它变得更好。主要是在我选择另一个子类别时发生的,它很好,而且显示它。但是在选择另一个子类别后,当我现在更改类别时,它不会更改。请发布您的代码,以便我可以诊断您的问题
protected void Page_Load(object sender, EventArgs e)
{ 
     if (!Page.IsPostBack) 
     { 
          // Bind your dropdownlists on page Load event
          ddwcategory.DataBind(); 
          ddwsubcat.DataBind();
          // Set default index if required

          Label1.Text = ddwsubcat.SelectedValue;
     }
}