Добавление навигации по записям



В заключении добавим к форме элементы, обеспечивающие навигации по записям объекта DataSet. В этом примере мы добавим две кнопки Предыдущаяи Следующая,а также добавим текстовое поле, в котором будет отображаться номер текущей записи (Рис. 4.34).

Для получения номера текущей записи таблицы данных используется свойство Position, которое доступно через объект BindingContext. Чтобы перемещаться по записям таблицы набора данных, нужно изменять значение этого свойства. Чтобы определить сколько записей находится в таблице данных, нужно получить значение свойства count объекта BindingContext. Для добавления объектов навигации выполните следующие действия.

 

1. Добавьте к форме две дополнительные кнопки, установив их свойства в соответствии с табл. 4.3.

 

  Таблица 4.3. Свойства элементов управления Button
Name (имя) Text (текст)
BtnNext BtnPrevious Следующая Предыдущая

2. Создайте обработчик события нажатия кнопки Предыдущая. Добавьте программный код декремента (уменьшения на единицу) свойства Position объекта BindingContext. Код будет выглядеть следующим образом (листинг 4.10).

Листинг 4.10

 

' Visual Basic

Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious.Click

Me.BindingContext(DsAuthorsl, "authors").Position -=1

End Sub

 

// C#

private void btnPrevious_Click(object sender, System.EventArgs e)

{

this.BindingContext[dsAuthors1, "authors"].Position -=1;

}

3. Сделайте то же самое для кнопки Следующая,только увеличьте значение свойства Position на единицу (листинг 4.11).

Листинг 4.11

 

' Visual Basic

Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles btnNext.Click

Me.BindingContext(DsAuthorsl, "authors").Position+=1

End Sub

 

// C#

private void btnNext_Click(object sender, System.EventArgs e)

{

this.BindingContext[dsAuthors1, "authors"].Position+=1;

}

Отображение номера текущей записи

Наконец, вы можете создать showPosition метод отобразить позицию текущих записей.

1. Добавьте к форме элемент TextBox, и назовите его txtPosition (рис. 4.34).

 

 

Рис. 4.34. Расположение на форме элементов навигации по записям

Примечание

Присвойте свойству Enabled значение False, чтобы пользователи могли видеть номер текущей записи, но не могли изменить его значение.

2. Создайте в форме процедуру с именем showPosition. В этой процедуре получите количество записей в таблице и номер текущей записи от объ екта BindingContext и отобразите эти значения в текстовом поле. Программный код листинга 4.12 демонстрирует эти действия.

Листинг 4.12

' Visual Basic

Private Sub ShowPosition()

Dim iCnt As Integer

Dim iPos As Integer

iCnt=Me.BindingContext(DsAuthorsl, "authors").Count

If iCnt=0 Then

txtPosition.Text="(No records)"

Else

iPos=Me.BindingContext(DsAuthorsl,"authors").Position+1 txtPosition.Text=iPos.ToString & " of " & iCnt.ToString

End If

End Sub

 

// C#

private void ShowPosition()

{

int iCnt;

int iPos;

iCnt=this.BindingContext[dsAuthors1, "authors"].Count;

iPos=this.BindingContext[dsAuthors1, "authors"].Position+1;

if (iCnt==0)

{

txtPosition.Text="(No records)";

}

else

{

txtPosition.Text=iPos.ToString() + " of " + iCnt.ToString() ;

}

}

3. Добавьте обращение к процедуре ShowPosition в тех фрагментах приложения, где текущая запись могла измениться. Для данного примера это необходимо сделать в следующих местах:

 

• После обращения к методу Fill в обработчике события click кнопки Показать авторов.

• После изменения текущей записи в обработчике события click кнопок Предыдущаяи Следующая.Например, законченный фрагмент кода для кнопки Предыдущаябудет выглядеть следующим образом (листинг 4.13).

Листинг 4.13

' Visual Basic

Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious.Click

Me.BindingContext(DsAuthorsl, "authors").Position -=l

ShowPosition()

End Sub

// C#

private void btnPrevious_Click(object sender, System.EventArgs e)

{

this.BindingContext[dsAuthors1, "authors"].Position -=1;

ShowPosition ();

}


Дата добавления: 2018-02-15; просмотров: 310; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!