/ / CheckboxListがViewstateを無効にしてSelectedを設定しない-c#、asp.net、postback、checkboxlist

チェックボックスリスト設定が無効Viewstateで選択されていません - c#、asp.net、postback、checkboxlist

ポストバックを行う場合を除き、すべてを正しく実行するように見えるCheckboxListがありますが、 Item.Selected プロパティセット。ページ全体でビューステートを無効にしています。

そのようにロードします(内部 Page_Load すべての負荷で):

foreach (DataRow service in d.Tables[0].Rows)
{
cblServices.Items.Add(new ListItem((string)service["description"], service["id"].ToString()));
}

私のマークアップは簡単です:

<asp:CheckBoxList runat="server" ID="cblServices" Width="300px"></asp:CheckBoxList>

そして、私は基本的にこのようなものを使用します(ボタンの_Clickサーバーサイドイベントで)

foreach(ListItem item in cblServices.Items){
if(item.Selected){
MyLabel.Text+="selected: "+item.Value+item.Text;
}
}

MyLabelにテキストが追加されることはありません。デバッガーで_Click "s foreachループに到達することを確認できますが、アイテムが選択されていません。この原因は何ですか?

回答:

回答№1の場合は3

「Page_Loadの呼び出しごとにデータを入力する場合は、 Page.IsPostback = false その後、ポストバックでクライアント選択をリセットしています。

EDIT PreInitイベントまたはInitイベントでアイテムを追加する必要があります。そうすると、選択したアイテムを正しく保持できます。

protected void Page_Init(object sender, EventArgs e)
{
foreach (DataRow service in d.Tables[0].Rows)
...
}