Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему отображается всегда первая позиция? / 9 сообщений из 9, страница 1 из 1
29.10.2004, 17:15
    #32761540
.DLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему отображается всегда первая позиция?
Всем привет!
Может кто знает, почему не срабатывает это?
Dim crm As CurrencyManager = Me.BindingContext(Me.RepositoryItemLookUpEdit2.DataSource)
Dim row As DataRowView = CType(crm.Current, System.Data.DataRowView)
Debug.WriteLine(row(0).ToString)
При выборе любого члена списка в любом случае отображается код первого члена, почему так?
Хотя в самом списке отображается нужная позиция.
Спасибо!
...
Рейтинг: 0 / 0
29.10.2004, 20:31
    #32761855
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему отображается всегда первая позиция?
Предположу что не тот BindingContext берете

Менять надо здесь:
Код: plaintext
1.
.... Me.BindingContext(Me.RepositoryItemLookUpEdit2.DataSource) 
...
Рейтинг: 0 / 0
01.11.2004, 10:14
    #32762605
.DLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему отображается всегда первая позиция?
Бесполезно
Я уже явно сделал:
Dim crm As CurrencyManager = Me.BindingContext(Me.Ds1, "vw_Sotrudniki")
Dim row As DataRowView = CType(crm.Current, System.Data.DataRowView)
Debug.WriteLine(row(0).ToString)
Всеравно отображается первый из списка.
...
Рейтинг: 0 / 0
01.11.2004, 13:20
    #32763043
sposad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему отображается всегда первая позиция?
Вот стопроцентно работающая функция, только BindingContext берётся от грида.

Код: plaintext
1.
2.
3.
4.
Public Shared Function GetRowColumn(ByVal frm As Form, ByVal  grd As DataGrid, ByVal strNameCol As String) As Object
        Dim cm As CurrencyManager = CType(frm.BindingContext(grd.DataSource, grd.DataMember), CurrencyManager)
        Dim row As DataRowView = CType(cm.Current, DataRowView)
        GetRowColumn = (row.Row(strNameCol))
    End Function

frm - форма
grd - грид
strNameCol - название колонки таблицы
...
Рейтинг: 0 / 0
01.11.2004, 13:30
    #32763070
.DLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему отображается всегда первая позиция?
В том то и дело, что в таблице у меня все прекрасно работает. А вот в списке ниструя.
А нужно просто определить код выделенной записи.
...
Рейтинг: 0 / 0
01.11.2004, 14:00
    #32763143
sposad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему отображается всегда первая позиция?
Млин, не понял, может туп. Список - это listbox ?
...
Рейтинг: 0 / 0
18.11.2004, 02:38
    #32788127
narval
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему отображается всегда первая позиция?
У меня та же проблема, test1 пишет всегда "A" а test2 реальную текущую позицию.

Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
    Dim DS As New DataSet
    Dim tbl As New DataTable

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim clmn As DataColumn
        Dim Row As DataRow
        '========================================================
        clmn = New DataColumn
        clmn.DataType = System.Type.GetType("System.Int32")
        clmn.ColumnName = "IdRow"
        tbl.Columns.Add(clmn)

        clmn = New DataColumn
        clmn.DataType = System.Type.GetType("System.String")
        clmn.ColumnName = "Text"
        tbl.Columns.Add(clmn)
        '========================================================
        Row = tbl.NewRow
        Row("IdRow") =  1 
        Row("Text") = "A"
        tbl.Rows.Add(Row)

        Row = tbl.NewRow
        Row("IdRow") =  2 
        Row("Text") = "B"
        tbl.Rows.Add(Row)

        Row = tbl.NewRow
        Row("IdRow") =  3 
        Row("Text") = "C"
        tbl.Rows.Add(Row)
        '========================================================
        tbl.TableName = "tbl"
        DS.Tables.Add(tbl)
        '========================================================

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.BindingContext(DS, "tbl").Position = (Me.BindingContext(DS, "tbl").Position +  1 )

        Dim RowText As String
        Dim row As DataRowView

        row = CType(CType(Me.BindingContext(DS.Tables("tbl")), CurrencyManager).Current, DataRowView)
        RowText = CStr(row("Text"))
        Console.WriteLine("Test 1: " & RowText)

        row = CType(Me.BindingContext(DS, "tbl").Current, DataRowView)
        RowText = CStr(row("Text"))
        Console.WriteLine("Test 2: " & RowText)

    End Sub

Может кто сказать чем отличется
Код: plaintext
1.
CType(CType(Me.BindingContext(DS.Tables("tbl")), CurrencyManager).Current, DataRowView)

от

Код: plaintext
1.
CType(Me.BindingContext(DS, "tbl").Current, DataRowView)
...
Рейтинг: 0 / 0
18.11.2004, 03:52
    #32788140
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему отображается всегда первая позиция?
эти два контекста РАЗНЫЕ

BindingContext(DS, "tbl")

BindingContext(DS.Tables("tbl"))

у одного DataSource - это dataset, а у второго - datatable. ...test1 пишет всегда "A" а test2 реальную текущую позицию...и оба пишут ПРАВИЛЬНУЮ ДЛЯ СЕБЯ позицию.

теперь дело за малым определить - какой контекст установлен для DataGrid :)

НИ ОДИН ИЗ ПОТЕРПЕВШИХ не указал, какой контекст он использует для установки.

внимательно посмотрите на пример sposad - он очень грамотно выбирает контекст - именно тот, который нужен и который используется для показа в datagrid'e:

frm.BindingContext( grd .DataSource, grd .DataMember)

и именно поэтому у него "стопроцентно работающая функция" © sposad
...
Рейтинг: 0 / 0
18.11.2004, 04:36
    #32788144
narval
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему отображается всегда первая позиция?
Я понял, спасибо. Казалось что BindingContext(DS, "tbl") и BindingContext(DS.Tables("tbl")) одно и то же.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему отображается всегда первая позиция? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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