Эта статья в основном вводит семь методов для реализации лихорадки страниц в ASP.
В системе программирования Microsoft ASP создание объектов ADO делает доступ к базам данных с веб -страниц легкой задачей, особенно объект ADO RecordSet делает его более удобным и свободным для отображения выходных данных управляющих данных. В Visual Interdev6.0 (в дальнейшем называется VI6.0), благодаря введению моделей объектов, таких как модель объекта Script (далее SOM), управление временем проектирования (далее называется DTC) и среда данных Объектная модель (далее называется Deom), сделайте веб -страницы более удобными для доступа к базе данных.
Из -за темы, в отношении подключений к базе данных, следующее дает только код и краткие комментарии, а также фокусируется на том, как использовать объекты записи (или элементы управления) для реализации отображения лицензионных записей данных. По моему пониманию, ключом к дисплею лиц лиц является овладение свойствами и методами объекта ADOSSETSET или DTC (управление временем дизайна).
Эти семь оружия, отображаемых на страницах, суммируются в четырех категориях: первой и второй, которую я временно называю их чистым методом ASP.
Это также наиболее часто используемый метод на домашних сайтах ASP. Реализация этих двух методов проще всего понять, используется наименьшая объектная концепция, и минимальные требования к среде разработки (просто блокнот). Можно сказать, что сущностью этих двух методов по -прежнему является идея программирования CGI, которая просто вводит объекты ADO в программу.
Четвертый и пятый методы DHTML временно назвали SOM.
Эти два метода требуют использования модели объекта сценария Microsoft (модель объекта скрипта) и новых функций привязки базы данных объектов таблицы в DHTML в VI6.0 (многие книги и статьи представляют только функции CSS DHTML применения в стиле дизайна стиля в стиле. Игнорирует введение своих характеристик привязки данных и реализует оборот страниц на стороне клиента. Тем не менее, это требует, чтобы браузер пользователя должен был поддерживать DHTML, например: Microsoft Internet Explorer 4.0 и выше.
Шестой метод временно называется методом SOM-сервера.
Это требует разработки в среде VI6.0, которая использует несколько элементов управления DTC в модели объекта скрипта, предложенной Microsoft: RecordSet, PageObject, Grid и т. Д. Для реализации управления поворотом страницы на стороне сервера (клиент). Это захватывающий и новый метод программирования, который рассматривает веб-страницы как объекты (эта объектная модель отличается от традиционной модели объекта DOM ---- DOM: DOM может управлять только клиентом, в то время как SOM может управлять стороной сервера и стороны клиента ), который действительно реализует объектно-ориентированное программирование веб-страниц. Но, к сожалению, может быть, мои личные способности ограничены, и я лично думаю, что эта технология еще не очень зрелая.
Седьмой метод временно называется методом DEOM.
Он также использует модель объектной среды Data Environment, установленную в VI6.0 для создания объектов записи. Это также относительно редкий новый метод в веб -программировании.
Все упомянутые коды, упомянутые позже, можно скопировать и использовать напрямую.
Прежде чем мы начнем подробно вводить различные методы подкидки, давайте создадим базу данных: используйте доступ в Office97 для создания сотрудника. MDB, которая создает таблицу EMP, и устанавливает только три поля: ID EMP, фамилия и имя. Почему это просто?
Первый метод замены параметров напрямую
Этот метод состоит в том, чтобы вручную создать объект записи и использовать его страницы (укажите количество записей, отображаемых на страницу), Pagecount (общее число страниц) и AbsolutePage (номера текущего номера) для управления выводом страницы. В подрывах страницы используется метод непосредственной нумерации страниц для управления оборотом страницы. Название веб -страницы - emp1.asp. Исходный код заключается в следующем:
- <%// Установить соединение с базой данных employee.mdb.
- SetConn = server.createObject (adodb.connection)
- conn.opendriver = {microsoft accessdriver (*. mdb)}; dbq = employee.mdb
- // Создать экземпляр объекта записи таблицы EMP.
- Setrs = server.createObject (adodb.recordset)
- Rs.openemp, Conn, 3
- PageSize = 10 // ATTRIBUTE PAGESIZE Указывает количество записей, которые будут отображаться на каждой странице.
- Page = clng (request (page)) 'тип строки преобразован в длинный тип
- Ifpage < 1ThenPage = 1
- Ifpage> rs.pagecountthenpage = rs.pagecount
- Ifpage <> 1then
- Response.write < ahref = emp1.asp? Page = 1 > Page1 </a>
- Response.write < ahref = emp1.asp? Page = & (Page-1) & > Предыдущая страница </a>
- Эндиф
- Ifpage <> Rs.pagecountthen
- Response.write < ahref = emp1.asp? Page = & (Page+1) & > Следующая страница </a>
- Response.write < ahref = emp1.asp?
- Эндиф
- Response.write Номер страницы: & page &/& rs.pagecount & </font >
- // отображение каждой страницы
- // Показать заголовок
- Ответ. Перепись < Центр >< Tableborder = 1 >
- Response.write < tr >< td > & rs.fields (empid) .name & </td >
- Response.write < td > & rs.fields (lastname) .name & </td >
- Response.write < td > & rs.fields (firstname) .name & </td ></tr >
- // циклете отображение каждой записи
- rs.absolutepage = page // назначить номер страницы атрибуту AbsolutePage, чтобы узнать первую запись записи текущей страницы
- Foripage = 1tors.pagesize //
- Response.write < tr >< td > & rs.fields (empid) .value & </td >
- Response.write < td > & rs.fields (firstname) .value & </td >
- Response.write < td > & rs.fields (lastname) .value & </td ></tr >
- Rs.movenext
- Ifrs.eoftthenexitfor
- Следующий
- Ответ. Написание </Таблица ></Центр >%>
Второй тип: метод параметра передачи формы
Этот метод такой же, как первый при создании объекта записи, за исключением того, что при повороте страницы он использует оператор CASE для достижения поворота страницы. Название веб -страницы: emp2.asp. Этот метод имеет недостаток в логике программирования: он автоматически переводит страницу после нажатия предыдущей страницы или кнопки следующей страницы, а затем нажимать кнопку обновления в браузере. Исходный код заключается в следующем:
- ifpagenum = thenpagenum = 1 // Показать на первой странице
- // Создать подключение к базе данных и экземпляр объекта записи rs.
- То же, что и первый метод, пропущенный здесь.
- Rs.pearsize = 10'set Количество записей, отображаемых на странице до 10
- // Подтвердите действие по поводу поворота страницы
- SELECTCASEREQUEST (NAV)
- Случай
- сеанс (pagenum) = 1
- casefirst'firstrescord
- сеанс (pagenum) = 1
- caseprev'previousRecord
- IfSession (pagenum)> 1then
- Session (pagenum) = сеанс (pagenum) -1
- Эндиф
- casenext'nextrecord
- IfSession (Pagenum) < Rs.pagecountthen
- Session (pagenum) = сеанс (pagenum) +1
- Эндиф
- caselast'lastrecord
- Session (pagenum) = Rs.PageCount
- Endselect
- Rs.absolutepage = clng (session (pagenum)) // Определить первый номер записи текущей страницы
- // Показать текущую страницу
- То же самое, что и первый метод, пропустите его здесь.
- // Настройки кнопки поворота на NAV
- < formmethod = GetAction = Emp2.asp >
- < inputType = Oppername = NAVVALUE = HOME>
- < inputType = OpportValue = Имя предыдущей страницы = NAV >
- < inputType = OpportValue = Next Page name = NAV >
- < inputType = OpportValue = Имя последней страницы = NAV ></Form >
Третий тип: используйте управление сеткой, чтобы разработать пейджинг
Из всех методов этот метод самый простой. Вам просто нужно перетащить элемент управления и управления сеткой в DTC на веб -страницу ASP. Более того, вы также можете выбрать, следует ли управлять оборотом страницы на платформе сервера или на клиентской платформе. Недостатком является то, что вы должны отобразить его в данном формате, и вы не можете контролировать формат дисплея таблицы самостоятельно.
Метод заключается в следующем:
Создайте проект Emp.vip в VI6.0. Затем добавьте веб -страницу ASP в проект: EMP3.ASP.
Шаг 1: Выберите «Добавить данные» подключение… в строке меню VI6.0 и следуйте по навигационным подсказкам инструмента разработки, и вы можете легко установить соединение с базой данных employee.mdb. Перетащите управление набором записей с панели инструментов DTC на веб -страницу и установите его свойства. Конкретный, как показано на рисунке:
Когда вы перетащите элемент управления на веб -страницу, VI6.0 автоматически заставит вас использовать модель объекта сценария и нажать «Да».
Шаг 3: Перетащите управление сеткой на панели инструментов DTC на веб-страницу, затем щелкните правой кнопкой мыши, чтобы установить его свойства, такие как: Выберите имя управления записи, созданное на втором этапе, выберите поля в таблице ИМП, и на каждой странице Сколько записей отображается, формат дисплея и т. Д. Это очень просто и удобно, просто следуйте подсказкам навигации.
Четвертый тип: метод DHTML один.
Записи данных отображаются в таблице HTML. Он использует характеристики привязки данных таблиц в DHTML для управления отображением лицензионных записей. Недостатком является то, что метод поворота вашей страницы будет ограничен конкретным методом: только предыдущая страница и следующая страница, но не домашняя страница и последняя страница. Поскольку он контролируется на стороне клиента, этот и пятый метод являются самыми быстрыми, но, к сожалению, его можно использовать только в браузерах, которые поддерживают DHTML.
В DHTML,
Свойство DataSRC позволяет таблице быть связана с источником данных, а другое свойство DatePageSize определяет количество записей, отображаемых на странице за раз.
Давайте посмотрим на следующий пример:
Шаг 1: Перетащите элемент управления записи в недавно созданную веб -страницу EMP4.HTM и установите его свойства.
Шаг 2: Введите следующий код:
- < tableId = table1datasrc =#recordset1_rdsdatapagesize = 5 > // При условии, что имя управления записей установлено до установки. 5 записей отображаются на страницу.
- < Theade >
- < thalign = левая вида = 150 > empid </th > // Заголовок таблицы вывода
- < thalign = левая вида = 200 > lastname </th >
- < thalign = левша = 200 > FirstName </Th >
- </Theade >
- < tr >
- < td >< divdatafld = empid ></div ></td > // Содержание вывода таблицы
- < td >< divdatafld = lastname ></div ></td >
- < td >< divdatafld = firstname ></div ></td >
- </tr >
- </Таблица >
Шаг 3: Затем добавьте пару элементов управления кнопкой кнопки DTCS, чтобы сделать навигацию по поводу страницы, один с именем Btnprevious (предыдущая страница) и другой с именем Btnnext (следующая страница). Их соответствующие сценарии следующие:
- < ScriptLanguage = VBScript >
- Functionbtnprevious_onclick ()
- Таблица 1.PreviousPage ()
- Конечная функция
- Functionbtnnext_onclick ()
- Таблица1.nextPage ()
- Конечная функция
- </Сценарий >
Пятый тип: метод DHTML два
Этот метод является совершенством для четвертого метода. Метод ручного сценария позволяет нам создавать домашнюю страницу и кнопки «Повернуть навигацию» и определить местоположение каждой записи (номер записи). Из -за длины я введу только один конкретный пример ниже и дам краткое объяснение. Для других свойств и методов управления DHTML и набора записей, пожалуйста, обратитесь к соответствующим книгам самостоятельно. Здесь следует отметить, что управление набором записей несколько отличается от объекта ADO Recordset, введенного в первом и втором методах: управление набором записей напрямую не дает свойства, такие как PageSize и Pagecount, и необходимо рассчитать с помощью метода, представленного ниже.
Шаг 1: Перетащите элемент управления записями в недавно созданную веб -страницу EMP5.HTM, с именем RecordSet1, и установите его свойства.
Шаг 2: Определите три глобальные переменные и напишите сценарий ondatasetcomplete of Recordset1.
- DimGcurrentPageNumber // Текущий номер страницы
- DimgmaxPageNumber // максимальное количество страниц
- DimgrecordSperpage // Номер записей, отображаемых на странице
- grecordsperpage = 5 // Установите количество записей, отображаемых на страницу на 5 записей.
- FunctionRecordSet1_ondatasetComplete ()
- TotalRecordCount = recordset1.getCount () // Общее количество записей
- GmaxPageNumber = int (totalRecordCount/grecordsperpage) // Получить максимальное количество страниц
- If (totalRecordCountModgreCordSperPage) > 0then
- GmaxPageNumber = GmaxPageNumber+1
- Эндиф
- Конечная функция
Шаг 3: Создайте кнопку «Навигация».
- Functionbtnfirst_onclick () 'перевернуть на домашнюю страницу
- GcurrentPageNumber = 1
- DisplayData ()
- Конечная функция
- Functionbtnprevious_onclick () 'переверните на предыдущую страницу
- IfgcurrentpageNummer> 1then
- GcurrentPageNumber = GcurrentPageNumber-1
- DisplayData ()
- Эндиф
- Конечная функция
- Functionbtnnext_onclick () 'переверните на следующую страницу
- IfgcurrentpageNumber < gmaxpagenumberthen
- GcurrentPageNumber = GcurrentPageNumber+1
- DisplayData ()
- Эндиф
- Конечная функция
- Functionbtnlast_onclick () 'переверните на последнюю страницу
- GcurrentPageNumber = GmaxPageNumber
- DisplayData ()
- Конечная функция
Шаг 4: Напишите функцию, которая отображает каждую страницу. Многие свойства и методы DHTML используются, пожалуйста, обратитесь к соответствующим книгам самостоятельно.
- Subdisplaydata ()
- Startrecord = ((GcurrentPageNumber-1)*grecordsperpage)+1 // Рассчитайте количество записей, отображаемых в начале каждой страницы (позиция, какой элемент)
- rowctr = 1
- lblpageNumber.innerhtml = gcurrentpageNumber &/& gmaxpageNumber
- Forrecordptr = startrecordto (startrecord+grecordsperpage-1) // езда на велосипеде для отображения каждой записи на странице
- Ifrecordptr > recordset1.getCount () Тогда // Показать пустую таблицу
- Таблица1.Rows (ROWCTR) .Cells (0) .innerHtml = < P ></P >
- Таблица1.Rows (ROWCTR) .Cells (1) .innerHtml = < P ></P >
- Таблица1.Rows (ROWCTR) .Cells (2) .innerHtml = < P ></P >
- Таблица1.Rows (ROWCTR) .Cells (3) .innerHtml = < P ></P >
- Else // Укажите каждую страницу
- Recordset1.moveabsolute (recordptr) // Перемещение указателя записи.
- empid = recordset1.fields.getValue (empid)
- emplname = recordset1.fields.getValue (FirstName)
- empfname = recordset1.fields.getvalue (lastname)
- Таблица1.Rows (ROWCTR) .cells (0) .innerText = recordptr'counter
- Таблица1.Rows (ROWCTR) .Cells (1) .InnerText = EmpId
- Таблица1.Rows (ROWCTR) .Cells (2) .InnerText = emplName
- Таблица1.Rows (ROWCTR) .Cells (3) .innerText = empfName
- Эндиф
- ROWCTR = ROWCTR+1
- Следующий
- Заканчивая
Кроме того, нам также необходимо написать следующий скрипт в событии Onload of the Window объект:
- ForRowctr = 1togreCordSperpage
- Таблица 1.InserTrow (ROWCTR) 'Вставьте новый столбец
- Forcellctr = 0to3
- Таблица 1.Rows (ROWCTR) .INSERTCELL ()
- Следующий
- Следующий
Шестой метод: оборот контрольной страницы на стороне сервера.
Если мы нанесем на стражу данные на сервере, а затем выведем их клиенту, не будет проблем с тем, что браузер не поддерживает DHTML. Тем не менее, использование метода на стороне сервера заставляет нас регенерировать управление записи каждый раз, когда мы поворачиваем страницу, поэтому скорость определенно медленнее, чем использование метода DHTML. Но если сервер достаточно быстрый, медлительность клиента не заметит.
В следующем примере я представлю новый DTC Control: PageObject. Этот элемент управления делает указанную веб -страницу объектом, и подпрограммы и функции, организованные пользователем в скрипте сервера веб -страницы, можно рассматривать как методы объекта веб -страницы. Он предоставляет расширенный метод управления информацией состояния: веб -объекты обладают некоторыми свойствами (переменными), что пользователи могут определить время жизни этих свойств. Из-за вышеупомянутых функций это делает нам очень удобным для составления сценариев по поводу страниц.
Но недостаток этого метода состоит в том, что когда вы нажимаете на предыдущую страницу или кнопку следующей страницы, а затем нажимаете кнопку обновления в браузере, веб -страница автоматически будет включать страницы. Кроме того, если вы нажмете кнопку Swarkback в браузере, а затем нажмите кнопку поворота страницы, вы можете перевернуть ее случайным образом. Все это вызвано свойствами веб -объекта (глобальные переменные).
Шаг 1: Перетащите элемент управления записями в недавно созданную веб -страницу EMP6.asp, с именем RecordSet1 и установите его свойства.
Шаг 2: Перетащите управление PageObject на веб -страницу и назовите его Emplist. Затем щелкните правой кнопкой мыши этот элемент управления, чтобы открыть страницу свойств и установить три свойства (глобальные переменные) максимального масштаба, записей и текущего панели. VI6.0 может использовать методы GET и установить для чтения и написания своих значений.
Шаг 3: Напишите событие ondatasetcomplete of Recordset1.
- FunctionRecordSet1_ondatasetComplete ()
- Recordsperpage = 5
- emplist.setRecordsperpage (recordsperpage) // Установите номер записи объекта веб -страницы на атрибут на страницу на 5
- TotalRecordCount = recordset1.getCount () // Получить общее количество Recordsets
- MPN = int (totalRecordCount/recordsperpage) // Рассчитайте MPN как общее количество страниц
- If (totalRecordCountModRecordSperpage) > 0then
- mpn = mpn+1
- Эндиф
- emplist.setmaxpageNumber (MPN)
- Конечная функция
Шаг 4: Перетащите четыре элемента управления кнопкой на веб -страницу и напишите сценарий управления поворотом страницы. В основном мы реализуем поворот страницы, изменяя значение свойства текущего панели -папье на объекте веб -страницы.
- Functionbtnfirst_onclick () 'перевернуть на домашнюю страницу
- emplist.setCurrentPageNumber (1)
- Конечная функция
- Functionbtnprevious_onclick () 'переверните на предыдущую страницу
- cpn = emplist.getCurrentPageNumber ()
- ifcpn > 1then
- emplist.setCurrentPageNumber (CPN-1)
- Эндиф
- Конечная функция
- Functionbtnnext_onclick () 'переверните на следующую страницу
- cpn = emplist.getCurrentPageNumber ()
- ifcpn < emplist.getMaxPageNumber (). Тогда
- Emplist.SetCurrentPageNumber (CPN+1)
- Эндиф
- Конечная функция
- Functionbtnlast_onclick () 'переверните на последнюю страницу
- emplist.setCurrentPageNumber (emplist.getMaxPagenumber ())
- Конечная функция
Чтобы убедиться, что первая страница отображается при входе на страницу в первый раз, мы должны написать событие OnEnter объекта веб -страницы.
- Function emplist_onenter ()
- Ifemplist.firstenteredthen
- emplist.setCurrentPageNumber (1)
- Эндиф
- Конечная функция
- Шаг 5: Напишите сценарий, который отображает каждую страницу.
- < HR >< TableBorder = 0 >< Tr > // Отображение заголовка
- < thalign = левая вида = 35 ></th >
- < thalign = левая вида = 150 > empid </th >
- < thalign = левая вида = 200 > lastname </th >
- < thalign = левша = 200 > FirstName </Th ></Tr >
- <%
- PageNumber = emplist.getCurrentPageNumber () // Рассчитайте различные параметры, необходимые для поворота страницы, так же, как метод DHTML два
- recordsperpage = emplist.getRecordsperpage ()
- starTecord = ((pagenumber-1)*recordsperpage) +1
- lastercord = recordset1.getCount ()
- Forrecordptr = startrecordto (startrecord+recordsperpage-1)%>
- <%ifrecordset1.eof = truethen%>
- < tr >
- < td ></td >
- < td ></td >
- < td ></td >
- < td ></td >
- </tr >
- <%Else%>
- <%RecordSet1.moveBesolute (recordptr)%>
- < tr >
- <%ifrecordptr < = lastercordthen%>
- < td ><%= recordptr%></td >
- <%Else%>
- < td ></td >
- <%endif%>
- < td ><%= recordset1.fields.getValue (empid)%></td >
- < td ><%= recordset1.fields.getValue (lastname)%></td >
- < td ><%= recordset1.fields.getValue (FirstName)%></TD >
- </tr >
- <%endif%>
- <%следующее%>
- </Таблица >< HR >
Седьмой тип: метод объектной модели среды данных
Модель объекта Data Environment ОБЪЕКТА ОБЪЕДИНЯЕТСЯ ОБЪЕДИНЕНИЯ ADO и ее объекты - соединение, команда, задание, полевые и параметры - в более простой форме. Объектная модель среды данных раскрывает команды как методы. Пользователь может вызвать эти методы, которые выполняют эти команды и возвращают полученный набор записей. Для получения подробной информации о модели объекта DEOM, пожалуйста, обратитесь к соответствующим книгам. Давайте посмотрим на следующий пример EMP7.ASP:
Шаг 1: Щелкните правой кнопкой мыши мышь в проекте в окне Explorer Project Vi6.0 и выберите «Добавить соединение данных» из всплывающего меню. После установления соединения с базой данных в соответствии с подсказок навигации, данными VI, пользователь добавляет команду данных для доступа к базе данных из приложения ASP. В то же время вы увидите объект среды передачи данных в рамках файла Global.ASA в окне «Исследование проекта».
Шаг 2: Щелкните правой кнопкой мыши объект среды данных и выберите параметр «Добавить команду данных» в меню всплывающего окна, чтобы добавить команду команды данных1. Согласно подсказкам навигации VI6.0, вы можете выбрать оператор SQL на генеральной странице всплывающего окна «Свойства команды1» и ввести: выберите * из EMP. Нажмите OK, чтобы вернуться.
Шаг 3: После того, как вы создаете эту команду данных, вы создали метод объекта среды данных, а затем вы можете вызвать этот метод из сценария, и метод вернет запись, установленную пользователю.
thispage.createde () // В режиме SOM эта страница представляет текущий объект веб -страницы, а метод Create () создает объект de.
De.command1 // выполнить команду объекта DE, который можно использовать в качестве параметра позже, что очень полезно при выполнении условных запросов.
SET RS = DE.RSCOMMAND1 // DE.RSCOMMAND1 делает объект RS полностью эквивалентным объекту ADO Recordset.
Шаг 4: Поскольку RS является объектом ADO, следующая страница реализации Поверните код полностью относится к методам, представленным выше, и пропускается здесь.
Другие методы, такие как методы, реализованные в навигации базы данных в FrontPage2000, не связаны с этой темой, поэтому здесь опущены.
Подводя итог, каждый метод, введенный выше, содержит много новых технологий, которые не могут быть проникнуты из -за длины. Эта статья просто хочет представить различные методы веб -программирования ASP через конкретный пример поворота страницы; Page Programming;