我有这样的代码:
on.aspx page
<asp:ListItem Value="1"> 1</asp:ListItem>
<asp:ListItem Value="2"> 2</asp:ListItem>
<asp:ListItem Value="2" Selected="True"> 3</asp:ListItem>
<asp:ListItem Value="4"> 1</asp:ListItem>
</asp:DropDownList>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
在aspx.cs页面上
protected void Page_Load(object sender, EventArgs e)
{
//do something
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
}
这里的问题是,当我点击按钮的时候DropDownList1_SelectedIndexChanged也会解雇。 当我走过去,发现这种情况发生的原因是不同的itemtext的价值相同。
<asp:ListItem Value="2"> 2</asp:ListItem>
<asp:ListItem Value="2" Selected="True"> 3</asp:ListItem>
我无法改变价值。
有运气吗?或究竟是什么问题?
谢谢,
维杰
答案 0 :(得分:2)
请检查DropDownList AutoPostBack属性。
如果AutoPostBack为真
获取或设置一个值,该值指示是否回发到服务器 当用户更改列表选择时自动发生。
答案 1 :(得分:0)
确保在网页上启用ViewState并将其添加到Page load
上 if (!IsPostBack)
{
//do code here
}
答案 2 :(得分:0)
SelectedIndexChanged
将触发。它没有考虑值或文本是否相同。
这就是为什么它被命名为SelectedIndexChanged
&amp;不是 SelecteValueChanged 或 SelectedTextChanged 。
因此,如果您想要SelectedIndexChanged
事件,并且希望事件具有相同的Value
或Text
,则不会触发。这是不可能的。
恕我直言:Value
或Text
不应在DropDownList
中重复。在绑定之前,您应该从DataSource中删除重复的值。