我有2个下拉列表,其中两个都有自动回发为真。 当我从dropdown1中选择时,它向dropdown2发送一个id,dropdown2显示与该id相对应的数据。 但问题是,当页面第一次启动时它没有显示,并且它始终显示以前选择的项目值。
就像页面加载时一样,它自动在dropdown1中选择“sayd”。为此,它在另一个dropdown2中选择相应的名称。但是当我启动应用程序时,它没有显示默认值的选定值。当我手动选择时,显示上一个选定的值。
我不知道为什么会发生这种情况,有什么解决方案可以建议吗?
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;
}
}
答案 0 :(得分:0)
似乎是一个PostBack问题。我建议您通过检查页面加载上的DropDownList
属性来绑定您的第一个IsPostBack
。
此外,调试代码并检查每个测试用例,如您所解释的那样。标记执行哪些事件和函数以及将哪些值添加到DropDownLists
。
答案 1 :(得分:0)
在Postback
方法:
Page_Load
条件
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostback)
{
//fill dropdown mehtod
}
}
答案 2 :(得分:0)
那件事确实奏效了。
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;
答案 3 :(得分:0)
您的部分代码超出!PostBack
条件。
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;
}
}