私はasp.net Webページ上にCheckBoxListを持っています。リストアイテムはHTMLにハードコードされているので(ポストバック/データバインディングの問題はありません)誰かがSubmitボタンをクリックすると、CheckBoxListの項目を繰り返し処理し、チェックされた値のコンマで区切られた文字列を作成します。ただし、リストアイテムの.Selectedプロパティは常にfalseです。私が見つけたすべての解決策は、データを消去していないことを確認するためにPage.IsPostBackをチェックする必要がありますが、a)既にチェックしています。b)動的にロードしていないので、リストコントロール。私はステップスルーして、リストを反復処理することができますCheckBoxList ListItem.Selected NotFunctioning
private string GetCheckBoxListValues(CheckBoxList chkList)
{
StringBuilder sb = new StringBuilder();
foreach (ListItem lst in chkList.Items) {
if (lst.Selected)
sb.Append (lst.Value).Append (",");
}
if(sb.Length > 0)
sb.Remove (sb.Length - 1, 1);
return sb.ToString();
}
の後ろ
マークアップ
<asp:CheckBoxList id="chkGenderList" runat="server" data-paramname="genders">
<asp:ListItem Value="M" Text="Male" />
<asp:ListItem Value="F" Text="Female" />
<asp:ListItem Value="" Text="Unknown" />
</asp:CheckBoxList>
コード:以下の私のコードです。私は確かに私がメソッドに渡しているチェックボックスのリストに項目を持っているが、すべての単一ListItem、.Selectedはfalseです。何か案は?
なぜあなたは、CheckBoxListのを使用していますか?あなたは本当にユーザーがここで複数の値を選択すると期待していますか?それとも、あなたがしようとしていることの一例ですか? –
いつこのメソッドを呼び出しますか?ページライフサイクルのどの段階ですか? – Andrei
ボタンクリックのイベントハンドラでコードをテストすると、完全に機能します。 – ConnorsFan