0 / 0 / 0
Регистрация: 14.12.2017
Сообщений: 62
1

Отбор записей в listview

03.02.2018, 22:09. Показов 1415. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет еще раз)
Еще один вопрос- не знаю, как реализовать.
В Listview1 есть 3 колонки
Фирма Размер
mizuno 43
asics 45
adidas 40
mizuno 41
mizuno 47
asics 40
mizuno 50


Модели в первом столбце повторяются. Так вот.
1. Как мне вывести в combobox1 - фирмы отсеяв повторяющиеся значения? то есть что бы в combobox 1 получилось:
mizuno
asics
adidas
2. Как мне при выборе записи в combobox1 - вывести в combobox2 из второго столбца listview все размеры по этой фирме?
то есть если я выбрал в combobox1 mizuno то в combobox2 я должен увидеть - 43, 41, 47, 50

Как это осуществить? заранее спасибо за помощь!!!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2018, 22:09
Ответы с готовыми решениями:

Отбор записей в listview
Доброго дня всем! Как можно найти значение во 2 столбце listview и вывести в label значение 4...

Отбор записей из текстового файла в listview
Всем привет! На форме - combobox, listview. ТАк же есть некий текстовый файл с данными формата:...

Отбор записей в combobox
Доброго всем дня! На форме имеется combobox со списком(список заполняется в коде) ...

Отбор записей из текстового файла в combobx е
Доброго дня, всем привет. Заинтересовался темой:...

6
1529 / 1477 / 322
Регистрация: 03.10.2012
Сообщений: 1,516
04.02.2018, 01:14 2
Лучший ответ Сообщение было отмечено pirat2019 как решение

Решение

pirat2019, Примерно так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Class Form1
    Dim things As New List(Of Thing)
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
       
        For Each row As ListViewItem In ListView1.Items
            things.Add(New Thing With {.Model = row.SubItems(0).Text, .Value = row.SubItems(1).Text})
        Next
 
        Dim hash As New HashSet(Of String)(From el As Thing In things Select el.Model)
        ComboBox1.DataSource = hash.ToList
    End Sub
 
    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim values() As String = (From el As Thing In things Where ComboBox1.SelectedItem = el.Model Select el.Value).ToArray
        ComboBox2.DataSource = values.ToList
    End Sub
End Class
Public Class Thing
    Public Property Model As String
    Public Property Value As String
End Class
Но это не совсем правильно, так как здесь мы заполняем модель данных из ListView, а должно быть все наоборот.
5
8 / 8 / 1
Регистрация: 09.10.2013
Сообщений: 613
05.02.2018, 22:54 3
MrCrown, а у меня когда добавил данные в listview во втором комбобоксе получилось задвоение этих записей.
то есть на примере pirat2019 покажу.
в таблице listview были записи:
mizuno 43
asics 45
adidas 40
mizuno 41
mizuno 47
asics 40
mizuno 50
ваш код отрабатывает отлично, то есть при выборе записи в combobox1 в combobox2 отображается размер.
если я выбрал mizuno то во втором комбо получил - 43,41,47,50 (здесь все в порядке.) проблема вот в чем встала.
Через текстовые поля (во время выполнения кода) я добавил еще запись в listvew (скажем mizuno | 39)
затем в combobox1 снова выбрал mizuno, но в combobox2 я получил задвоение тех записей, которые были уже загружены, то есть что я получил во 2 комбо: 39,43,43,41,41,47,47,50,50 .
Так вот, как этого можно избежать? не подскажите?
0
1529 / 1477 / 322
Регистрация: 03.10.2012
Сообщений: 1,516
06.02.2018, 10:38 4
Цитата Сообщение от adb420 Посмотреть сообщение
как этого можно избежать
Это хорошая иллюстрация к тому, что я уже уже говорил
Цитата Сообщение от MrCrown Посмотреть сообщение
Но это не совсем правильно, так как здесь мы заполняем модель данных из ListView, а должно быть все наоборот
Все действия с данными должны происходить в модели данных - в классах, списках и т.д., а в контролах должен отображаться результат.

Добавлено через 3 минуты
Цитата Сообщение от adb420 Посмотреть сообщение
я добавил еще запись в listvew
добавляйте её в List(Of Thing)

Добавлено через 9 минут
В моём коде цикл с 5 по 7 строку - только для примера - смоделировать ситуацию. В рабочем коде его быть не должно.
Вам нужно так выстроить алгоритм, чтобы данные попадали сначала в список, а уже потом в ListView
1
8 / 8 / 1
Регистрация: 09.10.2013
Сообщений: 613
06.02.2018, 17:06 5
MrCrown, а может как-то отчищать combobox, скажем combobox1.items.clear()? а потом заного загружать? так не выйдет?
0
1529 / 1477 / 322
Регистрация: 03.10.2012
Сообщений: 1,516
07.02.2018, 10:27 6
adb420, если вы хотите всё-таки использовать мой код в том виде как я его привёл (что, повторюсь, в корне неправильно), то очищайте не комбобокс, а список things.
VB.NET
1
2
3
4
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        things.Clear()
        For Each row As ListViewItem In ListView1.Items
        ' ' '
1
8 / 8 / 1
Регистрация: 09.10.2013
Сообщений: 613
07.02.2018, 16:35 7
MrCrown, а если данные скажем брать из текстового файла? такое возможно. так же осуществить? и как?:
скажем в текстовом файле записи так: (опять же таки на примере создателя темы)
mizuno|43
asics|45
adidas|40
mizuno|41
mizuno|47
asics|40
mizuno|50
в combobox1 вывести значения отсеяв записи то есть вывести:
mizuno
asics
adidas
а в comobox 2 - размеры по данной записи( выбранной в combobox1)?
не подскажите?
0
07.02.2018, 16:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2018, 16:35
Помогаю со студенческими работами здесь

ListView. Отбор уникальных значений
Вопрос следующего плана. Есть ListView с пятью колонками. Каким образом можно получить или только...

Отбор записей BETWEEN
Напишите запрос, который может вывести всех покупателей, чьи города начинаются с буквы,...

Отбор записей в таблице
Есть форма с привязанной таблицей. В таблице записаны заказы, есть повторные. Нужно, чтобы на...

Подзапросы на отбор записей
Всем доброго времени суток! Прошу помощи с написанием запроса на выборку данных по условиям....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru