Как я могу использовать несвязанное поле в DataGridView? - PullRequest
1 голос
/ 18 января 2012

Я работаю с DataGridView, имеющим два TextBoxColumn с и DataGridViewButtonColumn.

Как источник данных Я связал DataTable с тремя столбцами: "ID" , "Имя" , "Фамилия", но мне нужно показать только последние два столбца, поэтому в своей таблице данных я определил только Name и Surname (и столбец кнопки), установив свойство AutoGenerateColumns равное false.

Теперь мне нужно использовать поле "ID" при нажатии кнопки в строке ...

Как правильно получить значение "ID" из текущей строки?

Ответы [ 3 ]

1 голос
/ 18 января 2012

Если речь идет об отображении других столбцов, я бы оставил столбец идентификаторов внутри и скрыл его, установив для Columns["ID"].Visible значение false. Затем вы можете просто получить доступ к данным в столбце, но они не отображаются на экране.

0 голосов
/ 18 января 2012

Чтобы скрыть что-то .Visible не работает быстро. Попробуйте использовать DataView и BindingSource.

См. ссылку .

Есть filters, который работает очень хорошо. Как это:

 BindingSource tSource = new BindingSource();
 DataView view = new DataView(_table);
 tSource.DataSource = view;

Здесь я нахожу строку:

 DataRow row = CurrentRow(_dataGridView);

Вот реализация:

 public static DataRow CurrentRow(DataGridView aGrid)
    {
        CurrencyManager xCM =
          (CurrencyManager)aGrid.BindingContext[aGrid.DataSource, aGrid.DataMember];
        DataRowView xDRV = (DataRowView)xCM.Current;
        return xDRV.Row;
    }

Нечто подобное должно работать.

Надеюсь, это поможет вам!

0 голосов
/ 18 января 2012
gridview.Rows[gridview.CurrentRow.Index].Cells["id"].Value 

вы получите значение "id" текущей строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...