powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать динамическую сортировку в DataGrid?
11 сообщений из 11, страница 1 из 1
Как сделать динамическую сортировку в DataGrid?
    #32557570
dencat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос в следующем, есть DataGrid, есть TextBox, нужно чтобы при вводе слова в TextBox, динамически сортировались записи в DataGrid по определенному столбцу.
Ну например ввел А, в DataGrid остались все записи , в которых в заданном поле строка начинается на А.
Вел дальше З,в DataGrid остались все записи , в которых в заданном поле строка начинается на Аз.
Ну и т.д. до выбора одной записи полность удволетворяющей запросу, или вывода сообщения что таких данных нет.

Зарание спасибо за совет.
...
Рейтинг: 0 / 0
Как сделать динамическую сортировку в DataGrid?
    #32557645
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нужен сам код процедуры или идея?
Если идея, то на textbox keypress можно повесить запрос из БД и заполнение dataset
А, если код - надо думать... :))
...
Рейтинг: 0 / 0
Как сделать динамическую сортировку в DataGrid?
    #32557679
dencat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть у TextBox событие TextChanged? Лучше на него тогда.
Да луч ше бы код, идею то я понимаю:)
...
Рейтинг: 0 / 0
Как сделать динамическую сортировку в DataGrid?
    #32557736
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dencatВопрос в следующем, есть DataGrid, есть TextBox, нужно чтобы при вводе слова в TextBox, динамически сортировались записи в DataGrid по определенному столбцу.
Ну например ввел А, в DataGrid остались все записи , в которых в заданном поле строка начинается на А.
Вел дальше З,в DataGrid остались все записи , в которых в заданном поле строка начинается на Аз.
Ну и т.д. до выбора одной записи полность удволетворяющей запросу, или вывода сообщения что таких данных нет.


"Весим" на TextChanged:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
If Me.dataGrid1.DataSource Is Nothing Then
    Exit Sub
End If
Dim crm As CurrencyManager = CType(Me.BindingContext(Me.dataGrid1.DataSource, Me.dataGrid1.DataMember), CurrencyManager) ' где dataGrid1 - ваш грид
Dim dv As DataView = CType(crm.List, DataView)
Dim column As String = "columnName" ' название "определенного столбца"
Dim text = Me.TextBox1.Text ' ваш textbox
Dim filter As String = String.Format("{0} LIKE '%{ 1 }%'", column, text)
dv.RowFilter = filter
If dv.Count = 0 Then
    MsgBox("no records")
End If


Код: plaintext
 user id  =  S a
...
Рейтинг: 0 / 0
Как сделать динамическую сортировку в DataGrid?
    #32557748
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я в примере специально сделал по любому вхождению набираемой строки:

Если надо чтобы "начинается на..." то меняем
Код: plaintext
1.
Dim filter As String = String.Format("{0} LIKE '%{1}%'", column, text)

на
Код: plaintext
1.
Dim filter As String = String.Format("{0} LIKE '{1}%'", column, text)


Код: plaintext
 user id  =  S a
...
Рейтинг: 0 / 0
Как сделать динамическую сортировку в DataGrid?
    #32557764
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
"Весим" на TextChanged:
(типо, незнаешь не ЛЕЗЬ)
КАК ВСЕГДА - БОЖЕСТВЕННО...
...
Рейтинг: 0 / 0
Как сделать динамическую сортировку в DataGrid?
    #32558025
dencat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо сейчас попробую.
...
Рейтинг: 0 / 0
Как сделать динамическую сортировку в DataGrid?
    #32558313
dencat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо,заработало так :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFltr.TextChanged

        Dim crm As CurrencyManager
        Dim column As String
        Dim dv As DataView
        Dim text As String
        Dim filter As String


        If dgForm1.DataSource Is Nothing Then
            Exit Sub
        End If

        crm = Me.BindingContext(Me.dgForm1.DataSource, Me.dgForm1.DataMember)

        dv = CType(crm.List, DataView)
        column = "Name"
        text = Me.txtFltr.Text
        filter = String.Format("{0} LIKE '{1}%'", column, text)
        dv.RowFilter = filter
        If dv.Count =  0  Then
            MessageBox.Show("no records")
        End If

    End Sub

а какая разница между записями
Код: plaintext
1.
crm = CType(Me.BindingContext(Me.dgForm1.DataSource, Me.dgForm1.DataMember), CurrencyManager)
и
Код: plaintext
1.
crm = Me.BindingContext(Me.dgForm1.DataSource, Me.dgForm1.DataMember)

Работает и в том и в другом случае.
...
Рейтинг: 0 / 0
Как сделать динамическую сортировку в DataGrid?
    #32559000
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dencat
а какая разница между записями

Код: plaintext
1.
crm = CType(Me.BindingContext(Me.dgForm1.DataSource, Me.dgForm1.DataMember), CurrencyManager)

и

Код: plaintext
1.
crm = Me.BindingContext(Me.dgForm1.DataSource, Me.dgForm1.DataMember)

Работает и в том и в другом случае.


Если поставить Option Strict On (в коммерческих проектах я всегда ставлю On) , то так второй вариант не пройдет и придется делать CType.

Я стараюсь всегда по возможности явно преобразовывать объекты, но в тестовых примерах могу иногда что то упустить, а в C# второй вариант вообще не пройдет. Так что у басистов есть ИМХО сомнительное преимущество (Option Strict Off)
...
Рейтинг: 0 / 0
Как сделать динамическую сортировку в DataGrid?
    #32559066
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ссылка
это на случай, если количество строк в DataGride вдруг случайно перевалит за максимальнодопустимое
...
Рейтинг: 0 / 0
Как сделать динамическую сортировку в DataGrid?
    #32565087
dencat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, спасибо.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать динамическую сортировку в DataGrid?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]