Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как прокрутить каждую строку элемента управления DataGrid ASP.NET и как определить, выбран ли серверный элемент управления CheckBox ASP.NET, используемый для идентификации строки.
Исходная версия продукта: Visual Basic
Исходный номер базы знаний: 321881
Сводка
Пример кода в этой статье использует базу данных Microsoft SQL Server Northwind для заполнения элемента управления DataGrid, а затем добавляет элемент управления CheckBox в первый столбец каждой строки. Это распространенный способ, позволяющий пользователям выбирать несколько определенных строк в DataGrid.
В этой статье рассматриваются следующие пространства имен библиотеки классов .NET Framework:
System.Data.SqlClientSystem.Text
Требования
- Виндоус
- Платформа .NET Framework
- Службы интернет-информации (IIS)
- Visual Studio .NET
Создание веб-приложения ASP.NET с помощью Visual Basic .NET
- Запустите Visual Studio .NET.
- В меню Файл выберите пункт Создать, а затем выберите Проект.
- В диалоговом окне "Создать проект" выберите "Проекты Visual Basic " в разделе "Типы проектов" и выберите ASP.NET веб-приложение в разделе "Шаблоны".
- В поле "Расположение " замените имя webApplication# по умолчанию на MyWebApp. Если вы используете локальный сервер, вы можете оставить имя сервера как
http://localhost. В результирующем поле "Расположение " отображается какhttp://localhost/MyWebApp.
Создание примера страницы веб-формы
Добавьте новую веб-форму в веб-приложение ASP.NET следующим образом:
- Щелкните правой кнопкой мыши узел проекта в обозревателе решений, выберите пункт "Добавить" и нажмите кнопку "Добавить веб-форму".
- В поле "Имя" введите MySample.aspx и нажмите кнопку "Открыть".
В окне "Свойства" измените свойство pageLayout для документа на FlowLayout. Хотя для использования примера кода этого не требуется, это сделает презентацию более чистой.
Добавьте элемент управления DataGrid, кнопку и сервер метки на страницу следующим образом:
- Перетащите элемент управления сервером DataGrid ASP.NET из панели элементов веб-форм на страницу.
- В окне "Свойства" измените идентификатор элемента управления DataGrid на DemoGrid.
- Перетащите серверный элемент управления ASP.NET Button из панели инструментов Web Forms на страницу под DataGrid.
- В окне "Свойства" измените идентификатор элемента управления Button на GetSelections, а затем измените свойство Text на Get Selections.
- Перетащите серверный элемент управления Label ASP.NET из панели инструментов веб-форм на страницу под элементом управления Button.
- В окне "Свойства" измените идентификатор элемента управления Label на ResultsInfo, а затем удалите любой текст в свойстве Text .
Перейдите в html-представление в редакторе. Добавьте код в шаблон DataGrid по умолчанию для создания столбцов. Результирующий код элемента управления должен выглядеть следующим образом:
<asp:DataGrid id="DemoGrid" runat="server" DataKeyField="CustomerID"> <Columns> <asp:TemplateColumn HeaderText="Customer"> <ItemTemplate> <asp:CheckBox ID="myCheckbox" Runat="server" /> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid>Щелкните правой кнопкой мыши страницу и выберите команду "Просмотреть код". Откроется файл класса code-behind в редакторе. Добавьте следующие ссылки на пространство имен в файл класса code-behind:
Imports System.Data.SqlClient Imports System.TextЗамените существующий код обработчика
Page_Loadсобытий следующим кодом:Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then 'Create a SqlConnection object. 'Modify the connection string as necessary for your environment. Dim cn As SqlConnection = New SqlConnection("Server=localhost;database=Northwind;UID=sa;PWD=") Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM Customers", cn) cn.Open() Dim reader As SqlDataReader = cmd.ExecuteReader() DemoGrid.DataSource = reader DataBind() reader.Close() cn.Close() End If End SubПерейдите в режим конструктора и дважды щелкните GetSelections. Откроется файл класса code-behind в редакторе. Замените существующий код в обработчике
GetSelections_Clickсобытий следующим кодом:Private Sub GetSelections_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GetSelections.Click Dim rowCount As Integer = 0 Dim gridSelections As StringBuilder = New StringBuilder()'Loop through each DataGridItem, and determine which CheckBox controls 'have been selected. Dim DemoGridItem As DataGridItem For Each DemoGridItem In DemoGrid.Items Dim myCheckbox As CheckBox = CType(DemoGridItem.Cells(0).Controls(1), CheckBox) If myCheckbox.Checked = True Then rowCount += 1 gridSelections.AppendFormat("The checkbox for {0} was selected<br>", _ DemoGrid.DataKeys(DemoGridItem.ItemIndex).ToString()) End If Next gridSelections.Append("<hr>") gridSelections.AppendFormat("Total number selected is: {0}<br>", rowCount.ToString()) ResultsInfo.Text = gridSelections.ToString() End Sub
Убедитесь, что он работает
В меню "Файл" нажмите кнопку "Сохранить все" , чтобы сохранить веб-форму и другие файлы, связанные с проектом.
В меню "Сборка" в интегрированной среде разработки Visual Studio .NET щелкните "Сборка решения".
В обозревателе решений щелкните правой кнопкой мыши страницу веб-формы (MySample.aspx), а затем щелкните "Вид" в браузере. Обратите внимание, что на странице отображаются данные в сетке. Кроме того, флажок отображается в первом столбце каждой строки. Пользователь может щелкнуть этот флажок, чтобы пометить определенные строки.
Щелкните, чтобы выбрать несколько флажков для строк, а затем нажмите кнопку "Получить выбор".
После того как страница отправляется на сервер и выполняет код в
GetSelections_Clickобработчике событий, появится список элементов, выбранных на предыдущем шаге. Код в обработчике событий выполняет циклы по каждомуGetSelections_ClickэлементуDataGridItemуправления сервера DataGrid ASP.NET DataGrid, определяет, является ли проверяемое свойство связанного элемента управления CheckBox true, а затем записывает связанное значение ключа по определенной позиции дляDataKeysDataGrid.