Знакомство с ASP.NET

Что еще нужно знать об ASP.NET

Взаимодействие с клиентом

Создание интерактивных приложений для intranet-сетей

Расширение функциональных возможностей intarnet

Создание спортивного Web-узла

Управление содержимым Web-узла

Отслеживание действий посетителейa

Виртуальный университет

 Использование специализированных приложений на узлах компаний

Виртуальная риэлтерская контора

Персонализация узла для посетителей

Интерактивные возможности узла

Увеличение посещаемости узла

Создание интерактивного магазина

Создание интерактивного аукциона

Web-службы

Справочник по языку ASP.NET/VB.


Сайт создан по материалам книги Г. Бучека "Учебный курс по ASP.NET". Москва: BHV, 2002.

Создатель сайта-выпускник курсов web-дизайнеров Сафоновского Колледжа Информационных Технологий Максим Котликов
Сначала с учетом идентификатора ContentID программа получает из базы данных очередную страницу с текстовым материалом:

    DBCommand = New OleDbDataAdapter _
    ("Select SectionContentID, SectionContentTitle, " _
    & "SectionContent from SectionContents Where " _
    & "SectionContentID = (Select Min(SectionContentID) " _
    & "From SectionContents Where SectionContentID > " _
    & Session("CurrentSectionContentID") _
    & " and CourseSectionID = " _
    & Session("CourseSectionID") & ")", DBConn)
    DBCommand.Fill(DSPageData, _
    "SectionContent")

Необходимо убедиться, что текст данного раздела еще не исчерпан:

    If DSPageData.Tables("SectionContent").Rows.Count = 0 Then

Если достигнут конец раздела, учащийся возвращается на страницу Курс:

    Response.Redirect("./course.aspx")

В противном случае идентификатор записи содержания сохраняется:

    Session("CurrentSectionContentID") = _
    DSPageData.Tables("SectionContent"). _
    Rows(0).Item("SectionContentID")

и на экран выводится текст данной страницы:

    IblMessage.Text = DSPageData.Tables("SectionContent"). _
    Rows(O).Item("SectionContentTitle") _
    & "<br><br>" _
    & DSPageData.Tables("SectionContent"). _
    Rows(O).Item("SectionContent")

Страница Тест

На странице Тест специальный код выводит тест для указанного раздела, а также подсчитывает количество набранных баллов. Это наиболее сложный код из числа рассмотренных, поскольку тесты содержат разное количество вопросов и заранее неизвестно, сколько их нужно будет вывести в данном случае. В связи с этим необходимо обеспечить динамическое добавление элементов управления для отображения надлежащего количества вопросов. Рассмотрим набор элементов управления на странице Тест.

В первом элементе Label выводится название раздела:

    <asp:Label
    id="lblTitle"
    BorderWidth="7px"
    BorderStyle=7
    Width="90%"
    Font-Size="25pt"
    Font-Name="Tahoma"
    runat="server"
    />

Второй элемент Label используется для отображении инструкций:

    <asp:Label
    id="lblMessage"
    Font-Size="12pt"
    Font-Name="Tahoma"
    Font-Bold="True"
    Text="Ответьте на каждый вопрос и нажмите кнопку ОК."
    runat="server"
    />

Далее определяется элемент управления Panel, в который динамически добавляются вопросы и ответы при загрузке страницы:

    <asp:Panel
    id="pnlQuestions"
    Width="90%"
    runat="server"
    > </asp:Panel>

Последний элемент управления — Button. Щелчок на нем служит указанием программе обработать данные теста и подсчитать баллы:

    <asp:button
    id-"butOK"
    text=" OK "' '
    Type="Submit"
    OnClick="SubmitBtn_Click"
    runat="server"
    />

Co страницей связаны две процедуры. Первая выполняется при загрузке страницы. Эта процедура динамически выводит элементы управления для каждого вопроса теста.

    Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
    If Len(Session("StudentID")) = 0 Then
    Response.Redirect{"./index.aspx")
    End If
    If Len(Session("CourseSectioniD")) - 0 Then
    Response.Redirect("./home_room.aspx")
    End If
    Dim DBConn as OleDbConnection
    Dim DBCommand As OleDbDataAdapter
    Dim DSPageData as New DataSet
    Dim I as Integer
    Dim J as Integer
    Dim TempID as String
    DBConn - New OleDbConnection("Provider=sqloledb;" _
    & "seryer-localhost;" _
    & "Initial Catalog-INETC9;"
    & "User Id=sa;" _
    & "Password=yourpassword;") :
    DBCommand = New OleDbDataAdapter _
    ("Select SectionName from CourseSections Where " _
    & "CourseSectioniD = " & Session("CourseSectioniD") _
    , DBConn)
    DBCommand.Fill(DSPageData, _
    "SectionName")
    IblTitle.Text = "<сеntег>Раздел ," _
    & DSPageData.Tables("SectionName"). _
    Rows(O).Item("SectionName") _
    & "</center>"
    DBCoiranand = New OleDbDataAdapter _
    ("Select SectionQuestionID, QuestionText " _
    & "From SectionQuestions Where CourseSectionID = " _
    & Session ("CourseSectionID"), DBConn)
    DBCoiranand.Fill(DSPageData, _
    "QuizQuestions")
    For I = 0 to DSPageData.Tables("QuizQuestions"). _
    Rows.Count = 1
    Dim IcHTML = New LiteralControl
    IcHTML.Text = "<B>"
    & DSPageData.Tables("QuizQuestions"). _
    Rows (I) .Item("QuestionText") & "
    "
    pnlQuestions.Controls.Add(IcHTML)
    Dim MyDDL = New DropDownList
    TempID = DSPageData.Tables("QuizQuestions"). _
    Rows(I).ItemC'SectionQuestionID")
    MyDDL.ID = "Q" S TempID;
    DBCoiranand = New OleDbDataAdapter _
    ("Select AnswerText " _
    & "From QuestionAnswers Where SectionQuestionID = " _
    & TempID, DBConn)
    DBCommand.Fill(DSPageData, _
    TempID)
    For J = 0 to DSPageData.Tables(TempID). _
    Rows.Count - 1
    Dim Myltem = New Listltem
    Myltem.Text = DSPageData.Tables(TempID). _
    Rows(J).Item("AnswerText")
    MyDDL.Items.Add(Myltem)
    Next
    pnlQuestions.Controls.Add(MyDDL)
    Dim lcHTML2 = New LiteralControl
    lcHTML2.Text = "<BR><BR>"
    pnlQuestions.Controls.Add(lcHTML2)
    Next
    End Sub

Hosted by uCoz