Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)

Бодибилдинг
Программы тренировок для занятий штангой, гантелями; описание тренажеров

Я записываю курсы!
  Курс валют

НБУ курс евро






Объект CurrencyManager – получение текущей (активной) строки в DataGridView на C#



В прошлой статье о слежении ячейки за курсором мыши и получение текущей строки в DataGridView мы достаточно легко вітягивали из грида текущую строку, то есть активную запись.

Но существуют проблемные ситуации, корда такие подходы сработаю не правильно. Что имеется в виду.

К примеру есть DataSetс несколькими таблицями. Некоторый DataGridView мы биндим на одну из таблиц датасета. Перемещаясь по гриду мы можем перемещаться соответственно и по связанной таблице. Но вот если DataGridView поддерживает сортировку по значениям одного, или нескольких столбцов. Получается, что после сортировки номер активной строки грида уже не будет соответствовать той же строки в DataTable c тем же номером. Ведь строки в гриде сортируются без вовлечения в этот процесс исходный DataTable.

Выход все же есть, как всегда.

В данном случае будем использовать тип CurrencyManager. Он обеспечивает процесс связывания с исходными данными. С помощью данного класса мы реализуем возможность перемещения по записям грида в любом режиме отображения (фильтрация, сортировка и т.д).

Для демонстрации работы кода, подпишемся на событие MouseClick для грида:

private void dgv_MouseClick(object sender, MouseEventArgs e)
{
    CurrencyManager cManager = 
       dg.BindingContext[dgv.DataSource, dgv.DataMember] 
           as CurrencyManager;

    if (cManager == null || cManager.Count == 0) 
        return null;
    
    DataRowView drv = (DataRowView)cManager.Current;
    return drv.Row;
} 

Если хотите получить универсальный метод для любого DataGridView:

public DataRow FindCurrentRow(DataGridView dgv)
{
    CurrencyManager cManager = 
        dg.BindingContext[dgv.DataSource, dgv.DataMember] 
             as CurrencyManager;
    if (cManager == null || cManager.Count == 0) 
        return null;
    
    DataRowView drv = cManager.Current as DataRowView;
    return drv.Row;
}

Использовать метод просто:

private void dgv_MouseClick(object sender, MouseEventArgs e)
{
    DataRow dRow = Find(dgv);

    MessageBox.Show(dr[1].ToString());
}

Свойство CurrencyManager.Current представляет значение текущего объекта в датасурсе.

* Запись dr[1] представляет данные второго столбца строки.



Больше информации читайте по теме:

Автоматическое слежение активной ячейки в DataGridView за перемещением курсора мыши на c#
Получение текущей ячейки в DataGridView при вызове контекстного меню на c#
Значения по умолчанию новой строки DataGridView
Привязка (заполнение) элементов ListBox объектом SqlDataReader
Чтение (выборка) из БД Sql-Server двоичных данных (графического изображения)
Запись (занесение) изображения в БД SQL Server
Добавление и редактирование данных в типизированные DataTable
Импорт csv-данных в DataSet
Импорт sql-данных в формат .csv



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        Постоянный посетитель    14.06.2010 12:47:19
        

Хотелось бы увидеть подробную статью о более масшабном применении объекта CurrencyManager. А так то неплохая стаья, полезная.




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Черный список покупателей
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок