如果自动回退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 >
                                    &nbsp;<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;
        }
}

如果自动回退ASP.NET上选中了复选框,则更改下拉列表值

你的列表缺少一个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";
}