复选框列表以生成一个文本框

本文关键字:一个 文本 列表 复选框 | 更新日期: 2023-09-27 18:34:43

所以我有这个复选框列表,并在选中 MISC 复选框时尝试生成一个文本框。

<asp:CheckBoxList ID="chbxEquipmnt" runat="server"RepeatColumns="4" RepeatDirection="Horizontal" ValidationGroup="Equipment" OnSelectedIndexChanged="chbxEquipmnt_SelectedIndexChanged">
                <asp:ListItem Value="Laptop">Laptop</asp:ListItem>
                <asp:ListItem Value=" Label Printer">Label Printer</asp:ListItem>
                <asp:ListItem Value="Printer">Printer</asp:ListItem>
                <asp:ListItem Value="Fax Line">Fax Line</asp:ListItem>
                <asp:ListItem Value="PC">PC</asp:ListItem>
                <asp:ListItem Value="MFD">MFD</asp:ListItem>
                <asp:ListItem Value="Phone Line">Phone Line</asp:ListItem>
                <asp:ListItem Value="Misc">Misc</asp:ListItem>
            </asp:CheckBoxList>

在我的Cs页面上,我有...

protected void chbxEquipmnt_SelectedIndexChanged(object sender, EventArgs e)
{
    if (chbxEquipmnt.SelectedValue == "Misc")
    {
        TextBox txt = new TextBox();
        txt.ID = "txtMiscCheckBox";
        Page.Form.Controls.Add(txt);
    }
}

调试我已经尝试使用回发,它连续返回选中的第一个复选框......例如,我首先检查了笔记本电脑而不是杂项,调试器中的值始终向我显示笔记本电脑。我不确定一个简单的循环是否通过所有按钮点击会有所帮助.....我刚从学校毕业,这对我来说是一个职业转变,所以感谢您的耐心等待

复选框列表以生成一个文本框

我会改变方法:不要在运行时创建文本框。

在设计时创建它,默认情况下隐藏它(Visible 属性(,然后在选择Misc选项时显示它。

这样你会遇到更少的问题。在运行时创建控件需要一些额外的努力:处理ViewState,在PostBack上重新创建控件等。