1

私は次のコードを持っています:

foreach (ListItem item in lstCreate.Items)
{
    if (item.Selected)
        strCreateNewVideoCategory += item.Value + ":0,";
    else
        strCreateNewVideoCategory += item.Value + ":1,";
}

この手順を使用しています、item.Selectedは、アイテムのリストからアイテムを選択している場合でも、毎回falseです。何が間違っていますか?

注:ユーザーコントロール(ascx)を使用するListItem。

4

4 に答える 4

6
  1. バインディングにはこのコードを試してみる必要があります

    if (!IsPostback)
    { 
        BindYourControl();
    }
    

    投稿するたびにコントロールをロードしてバインドするため、選択した値を消去します

  2. 永続化するには、ViewStateを使用します。

    EnableViewState = true;
    
于 2012-07-30T12:03:37.310 に答える
0

コードは私には問題ないように見えます。どこが間違っているかを実際に確認するには、ブレークポイントを設定してみてください。

于 2012-07-30T12:06:49.710 に答える
0

自動ポストバックイベントでページの読み込みと選択したアイテムの使用を確認してください

 listitem_selectedindexchanged()
{
}

それはあなたに選択されたアイテムの価値を与えるでしょう

于 2012-07-30T12:07:38.180 に答える
0

ともかく、

foreach (ListItem item in lstCreate.Items)
{
    str += item.Value + item.Selected ? ":0," : ":1,";
}

以上

str = String.Join(
    ",",
    lstCreate.Items.Cast<ListItem>.Select(item => item.Value + item.Selected ? ":0" : ":1");
于 2012-07-30T12:08:16.137 に答える