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