Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск записи 
V
    Опции темы
maxnoskov
Дата 21.9.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 21.6.2006
Где: Мурманск

Репутация: нет
Всего: нет



Такой вопрос, как зная индекс записи в Datatable узнать индекс этой же записи в DataGridView, если источником для DataGridView является дефолтный просмотр этой Datatable
PM MAIL   Вверх
ivashkanet
Дата 21.9.2006, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 11
Всего: 149



Он будет такой же как и в DataSet-e.
P.S. Любой Grid не содержит данных, он только их отображает smile
PM MAIL WWW ICQ   Вверх
andrx
Дата 21.9.2006, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Андрей
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 16.12.2005
Где: Киев

Репутация: 1
Всего: 4



я так понял, что используется 2005 студия.
у меня пока 2003 и я делал так, попробуй :
Код

DataView dataView = (DataView)((CurrencyManager)BindingContext[dg.DataSource, dg.DataMember]).List;
                    int i = Array.IndexOf(dataView.Table.Select("", dataView.Sort), row);


i - номер записи
dg - DataGrid
row - записи в DataTable 


должно работать независимо от стиля грида и выполненных сортировок в гриде


Это сообщение отредактировал(а) andrx - 21.9.2006, 14:51
--------------------
Лучше скажи мало, но хорошо. (Козьма Прутков)
PM MAIL ICQ   Вверх
maxnoskov
Дата 25.9.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 21.6.2006
Где: Мурманск

Репутация: нет
Всего: нет



Цитата(ivashkanet @ 21.9.2006,  10:53)
Он будет такой же как и в DataSet-e.
P.S. Любой Grid не содержит данных, он только их отображает smile

Вот с этим не согласен, если источником для грида является просмотр, то позиция в таблице и позиция в просмотре не есть одно и то же, так как просмотр может быть отсортирован как угодно, а может и отфильтрован. 
PM MAIL   Вверх
reloni
Дата 25.9.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 10.5.2006
Где: Москва

Репутация: 1
Всего: 4



maxnoskov, имелась ввиду не позиция в гриде, а значение поля, например "ID", вот оно точно всегна будет одинаковым.
PM MAIL ICQ   Вверх
maxnoskov
Дата 25.9.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 21.6.2006
Где: Мурманск

Репутация: нет
Всего: нет



Цитата(reloni @ 25.9.2006,  15:02)
maxnoskov, имелась ввиду не позиция в гриде, а значение поля, например "ID", вот оно точно всегна будет одинаковым.

Ну с этим не поспоришь smile 
Но мне нужна именно позиция в гриде, а это вопрос не тривиальный
PM MAIL   Вверх
andrx
Дата 26.9.2006, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Андрей
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 16.12.2005
Где: Киев

Репутация: 1
Всего: 4



для 2005
Код

int indexRowInDataTable = 1;
// определяем индекс в DataGridView
DataView dataView = (DataView)((CurrencyManager)BindingContext[this.dataGridView1.DataSource, this.dataGridView1.DataMember]).List;
int indexRowInDataGridView = Array.IndexOf(dataView.Table.Select("", dataView.Sort), dataView.Table.Rows[indexRowInDataTable]);


1. Создай проект
2. Положи на форму dataGridView1
3. Положи на форму button1 и добавь обработчик button1_Click

Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace proba1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            DataTable dt = new DataTable();
            dt.Columns.Add("col1",typeof(string));
            DataRow row;
            for (int i = 0; i < 10; i++)
            {
                row = dt.NewRow();
                row[0] = i;
                dt.Rows.Add(row);
            }
            this.dataGridView1.DataSource = dt;

        }

        private void button1_Click(object sender, EventArgs e)
        {
            int indexRowInDataTable = 1;

            // определяем индекс в DataGridView
            DataView dataView = (DataView)((CurrencyManager)BindingContext[this.dataGridView1.DataSource, this.dataGridView1.DataMember]).List;
            int indexRowInDataGridView = Array.IndexOf(dataView.Table.Select("", dataView.Sort), dataView.Table.Rows[indexRowInDataTable]);

            MessageBox.Show("значение элемента в DataTable : " + dataView.Table.Rows[indexRowInDataTable][0].ToString() 
                + "\nиндекс в DataTable : " + indexRowInDataTable.ToString() 
                + "\nиндекс в DataGridView : " + indexRowInDataGridView.ToString());

        }
    }
}




Это сообщение отредактировал(а) andrx - 26.9.2006, 09:46
--------------------
Лучше скажи мало, но хорошо. (Козьма Прутков)
PM MAIL ICQ   Вверх
maxnoskov
Дата 28.9.2006, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 21.6.2006
Где: Мурманск

Репутация: нет
Всего: нет



Глубоко признателен, большое спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.