如果在autopostback ASP.NET上选中了复选框,则更改下拉列表值

时间:2015-06-08 10:59:25

标签: c# asp.net checkbox postback dropdownlistfor

如果在我的Web应用程序中选中了Checkbox1,我想更改DropDownList1值。

页面加载时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;
        }
}

2 个答案:

答案 0 :(得分:0)

您的列表项缺少值属性。

<asp:ListItem Value="1">1</asp:ListItem>

答案 1 :(得分:0)

删除您的Page_Load代码并用下面的标记替换复选框标记

int *mptr = (int *)malloc(sizeof(int *)); 

并在此事件中编写您的逻辑

  <asp:CheckBox ID="Checkbox1" runat="server" class="itemCheck" AutoPostBack="True" CausesValidation="True" OnCheckedChanged="Checkbox1_CheckedChanged"/>