0

だから私はこのチェックボックスリストを持っていて、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);
    }
}

デバッグ ポストバックを試してみましたが、チェックされた最初のチェックボックスが継続的に返されます...たとえば、最初に Misc ではなくラップトップをチェックすると、デバッガーの値は常にラップトップを表示します。すべてのボタンをクリックする単純なループが役立つかどうかはわかりません.....私は学校を卒業したばかりで、これは私にとって転職なので、忍耐に感謝します

4

1 に答える 1

1

アプローチを変更します。実行時にテキストボックスを作成しないでください。

設計時に作成し、デフォルトで非表示 (Visible プロパティ) にし、Miscオプションが選択されたときに表示します。

そうすれば、問題が少なくなります。実行時にコントロールを作成するにはViewState、 の処理、 でのコントロールの再作成PostBackなど、追加の作業が必要です。

于 2013-10-10T16:40:58.507 に答える