如果自动回退ASP.NET上选中了复选框,则更改下拉列表值
本文关键字:复选框 下拉列表 回退 ASP NET 如果 | 更新日期: 2023-09-27 17:54:35
我想改变DropDownList1的值,如果Checkbox1在我的Web应用程序选中。
当页面加载时,DropDownList1的默认值应该是"0"当Checkbox1被点击时,DropDownList1的值应该是"1"
下面我写的代码抛出了一个运行时错误。
我的aspx片段:
<asp:CheckBox ID="Checkbox1" runat="server"
class="itemCheck" AutoPostBack="True" CausesValidation="True" />
</td>
<td >
<asp:DropDownList ID="DropDownList1" runat="server" Height="16px"
Width="138px">
<asp:ListItem Selected="True">0</asp:ListItem>
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
我的代码文件:
protected void Page_Load(object sender, EventArgs e)
{
string val = "1";
ListItem checkItem = DropDownList1.Items.FindByValue(val);
if (checkItem != null)
{
DropDownList1.ClearSelection();
checkItem.Selected = true;
}
}
你的列表缺少一个value属性。
<asp:ListItem Value="1">1</asp:ListItem>
删除Page_Load代码并将复选框标记替换为下面的标记
<asp:CheckBox ID="Checkbox1" runat="server" class="itemCheck" AutoPostBack="True" CausesValidation="True" OnCheckedChanged="Checkbox1_CheckedChanged"/>
并写下你在这个事件中的逻辑
protected void Checkbox1_CheckedChanged(object sender, EventArgs e)
{
If (Checkbox1.Checked) DropDownList1.SelectedValue = "1";
else DropDownList1.SelectedValue = "0";
}