2016-05-27 4 views
1

В приведенном ниже примере CheckBoxList списка 6 элементов списка, и если я снимите любой предмет, я должен быть в состоянии получить непроверенное значениеПолучить непроверенное значение элемента списка из CheckBoxList C#

<asp:CheckBoxList id="chkbxFileTypes" runat="server" OnSelectedIndexChanged="chkbxFileTypes_SelectedIndexChanged" AutoPostBack=true> 
    <asp:ListItem>Item 1</asp:ListItem> 
    <asp:ListItem>Item 2</asp:ListItem> 
    <asp:ListItem>Item 3</asp:ListItem> 
    <asp:ListItem>Item 4</asp:ListItem> 
    <asp:ListItem>Item 5</asp:ListItem> 
    <asp:ListItem>Item 6</asp:ListItem> 
    </asp:CheckBoxList> 

Если я снимите Item1 элемент списка, Мне нужно получить значение того же самого?

Какое событие я должен использовать, так как теперь я использую выбранное изменение индекса, и оно просто дает мне выбранное значение, а не невыделенное значение?

Пожалуйста, помогите

+0

Где бы вы хотели обработать это, на сервере или на клиенте? –

+0

сервер? Я не использовал javascript, jus pure asp.net controls –

ответ

1

В yourcode позади вы можете Гендель события chkbxFileTypes_SelectedIndexChanged как:

protected void chkbxFileTypes_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      List<ListItem> selected = chkbxFileTypes.Items.Cast<ListItem>() 
      .Where(li => ! li.Selected) 
      .ToList(); 
     } 

или с помощью простого Еогеаспа:

List<string> selectedValues = chkbxFileTypes.Items.Cast<ListItem>() 
     .Where(li => ! li.Selected) 
     .Select(li => li.Value) 
     .ToList(); 
-1
protected void chkbxFileTypes_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string checkedValue = ""; 
    string uncheckedValue = ""; 
    foreach (ListItem val in chkbxFileTypes.Items) 
    { 
     if (val.Selected) 
     { 
      checkedValue += val.Value + " "; 
     } 
     else 
     { 
      uncheckedValue += val.Value + ","; 
     } 
    } 
} 
+0

Это очень трудно прочитать, см. Подробности о том, как отформатировать ваши сообщения http://stackoverflow.com/help/formatting. –

+0

Для, например: Есть 4 элементов списка A, B, C, D и А & B находится в зарегистрированном состоянии, при попытке отмените B, то я должен быть в состоянии получить значение B без зацикливания. . Это возможно ? –

0
protected void chkbxFileTypes_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string checkedid = ""; 
     string uncheckedValue = ""; 
     foreach (ListItem val in chkbxFileTypes.Items) 
     { 
      if (val.Selected) 
      { 
       checkedid += val.Value + " "; 
      } 
      else 
      { 
       uncheckedValue += val.Value + ","; 
      } 
     } 
    } 
+0

Для, например: Есть 4 элементов списка A, B, C, D и А & B находится в зарегистрированном состоянии, при попытке отмените B, то я должен быть в состоянии получить значение B без зацикливания. . Это возможно ? –

0
protected void chkbxFileTypes_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string eventTarget = Request.Form.Get("__EVENTTARGET"); 
     int index = Convert.ToInt32(eventTarget.Substring(eventTarget.Length-1)); 
     bool isUnchecked = !chkbxFileTypes.Items[index].Selected; 
     if (isUnchecked) 
     { 
      string value = chkbxFileTypes.Items[index].Value; 
     } 
    } 

Используйте элемент формы «__EVENTTARGET», чтобы установить флажок «индекс цели», а затем проверить, не снят ли он. Если его непроверено, то получите его значение.

+0

Это не работает. –

+0

Вы получаете какую-либо ошибку? –

+0

да я. Ошибка ввода строки –

Смежные вопросы