我的DropDownList放在了aspx里的panel里了
同时在这个panel还有LinkButton
我想当DropDownList更换Item时,更改LinkButton的Text
private void My_ddl_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(My_ddl.SelectedItem.Text.ToString()=="Csharp学习")
{
LinkButton.Text="C#学习";
}
}
但是更换DropDownList的item时好象就没反映!
以前用DropDownList实现过这样的功能,只是当时的DropDownList与LinkButton都没放在Panel里,会不会是因为这个?
请高手指点指点,解决了就结帖
autopostback都设置成了true应该就可以了,和在不在panel应该没有关系啊,出现这个问题是因为你的autopostback事件没有发生。
可能LinkButton在panel里没找到,你先用panel.findcontrol获取以下那个LinkButton试试
将DropDownList的autopostback属性设置为true就可以了
将autopostback设为true就可以了
private void My_ddl_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(My_ddl.SelectedItem.Text.ToString()=="Csharp学习")
{
LinkButton.Text="C#学习";
}
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
// dropdownlist 的数据绑定放在这里!
}
}
你注意了吗?
那就说明了if(My_ddl.SelectedItem.Text.ToString()=="Csharp学习")
是字符串的问题,说明你的下拉的文本不是"Csharp学习";
可能是空格的问题,或者是全角等的问题
试一下
if(My_ddl.SelectedItem.Text.trim()=="Csharp学习")
page_load里:
if(!IsPostBack)
{
My_ddl.Items.Add(new ListItem("xxxxxxx","yyyyyy"));
My_ddl.Items.Add(new ListItem("Csharp学习","Csharp"));
}
private void My_ddl_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(My_ddl.SelectedItem.Text.Trim()=="Csharp学习")
{
LinkButton.Text="C#学习";
}
}
再试试
我想,你的程序连My_ddl_SelectedIndexChanged都没确发吧?:)
1.看看代码有没声明DropDownList控件
2.看看代码有没委托My_ddl_SelectedIndexChanged事件!
一般当控件移入panel时声明会消失,检查一下.