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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Web-службы

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


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

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


Проект Кабина для голосования
Проект День рождения
Проект Рассылка почты


Описанная панель содержит два элемента управления. В элементе Label отображается информация для пользователя:

    <asp:Label
    id="lblMessageResults"
    Font-Size="12pt"
    Font-Name="Tahoma"
    Font-Bold="True"
    Text="Bы уже голосовали по этому вопросу. Текущие результаты голосования."
    runat="server"
    />

Элемент DataGrid предназначен для показа текущих результатов голосования по выбранному вопросу:

    <ASP:DataGrid
    id="dgResults"
    Width="90%"
    BackColor="beige"
    AlternatingItemStyle-BackColor="cornsilk"
    BprderColor="black"
    ShowFooter="false"
    CellPadding=3
    CellSpacing="0"
    Font-Name="Arial"
    Font-Size="8pt"
    ForeColor="Black"
    HeaderStyle-BackColor="burlywood"
    Headerstyle-Font-Bold="True"
    runat="server">
    </asp:DataGrid>

Связанный с рассматриваемой страницей код содержит три процедуры. Первая активизируется при загрузке страницы:

    Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
    If Len(Session("EmployeelD")) = 0 Then
    Response.Redirect("./index.aspx")
    End If
    If Not IsPostBack Then
    Dim DBConn as OleDbConnection
    Dim DBCommand As OleDbDataAdapter
    Dim DSPageData as New DataSet
    DBConn = New OleDbConnection("Provider=sqloledb;" _
    & Server=localhost";
    & Initial Catalog=INETC4;"
    SUser ID=sa;"_
    &Password=yourpassword;"_
    DBCommand = New OleDbDataAdapter _
    ("select QuestionlD, QuestionText " _
    & "from VoteQuestions Where VotingGroupID In " _
    & "(Select VoteGroupID from VoteEmployeelnGroup " _
    & "Where EmployeelD = " & Session("EmployeelD") _
    & ")", DBConn)
    DBCommand.Fill(DSPageData, _
    "Questions")
    ddlQuestionlD.DataSource = _
    DSPageData.Tables("Questions").DefaultView
    ddlQuestionID.DataBind()
    End If
    End Sub

Страница отображается только в том случае, если сотрудник прошел регистрацию:

    If Len(Session("EmployeelD")) = 0 Then

Если сотрудникне зарегистрировался, он перенаправляется на страницу Регистрация:

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

Остальная часть кода выполняется только при первой загрузке страницы:

    If Not IsPostBack Then

Производится отбор вопросов для той группы, к которой принадлежит сотрудник. Внимательно изучите этот сложный запрос. В предложении Where используется подзапрос для поиска всех групп, в состав которых входит сотрудник.

    DBCommand = New OleDbDataAdapter _
    ("select QuestionlD, QuestionText " _
    & "from VoteQuestions Where VotingGroupID In " _
    & "(Select VoteGroupID from VoteEmployeelnGroup " _
    & "Where EmployeelD = " & Session("EmployeelD") _
    & ")", DBConn)

Результаты выполнения запроса помещаются в объект DataSet:

    DBCommand.Fill(DSPageData, _
    "Questions")

С этим объектом связывается первый элемент DropDownList:

    ddlQuestionlD.DataSource = _
    DSPageData.Tables("Questions").DefaultView
    ddlQuestionID.DataBind()

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

    Sub ddl_Change(Sender As Object, E As EventArgs)
    Dim DBConn as OleDbConnection
    Dim DBCommand As OleDbDataAdapter
    Dim DSPageData as New DataSet
    DBConn - New OleDbConnection("PROVIDER=sqloledb;"
    & Seryer=localhost;" _
    & Initial Catalog-INETCI;"
    & User ID=sa;"_
    & Password=yourpassword;"
    DBCommand = New OleDbDataAdapter _
    ("Select VotelD from Votes "
    & "Where QuestionID = " _
    & ddlQuestionlD.Selectedltem.Value _
    & " and EmployeelD = " & Session("EmployeelD") _
    , DBConn)
    DBCommand.Fill(DSPageData, _
    "VotesCast")
    If DSPageData.Tables("VotesCast"). _
    Rows.Count = 0 Then
    pnlVote.Visible - True
    pnlResults.Visible = False
    DBCommand = New OleDbDataAdapter _
    ("Select AnswerText from VoteAnswers " _
    & "Where QuestionID = " _
    & ddlQuestionlD.Selectedltem.Value _
    & " Order By AnswerText", DBConn)
    DBCommand.Fill(DSPageData, _
    "Answers")
    ddlAnswers.DataSource - _
    DSPageData.Tables("Answers").DefaultView
    ddlAnswers.DataBind()
    Else
    pnlVote.Visible - False
    pnlResults.Visible - True
    DBCommand = New OleDbDataAdapter _
    ("Select AnswerText as [Ответ], " _
    & "Count(VotelD) as [Голосов] From Votes " _
    & "Where QuestionID
    & ddlQuestionlD.Selectedltem.Value _
    & " Group By AnswerText Order By " _
    & "Count(VotelD) DESC", DBConn)
    DBCommand.Fill(DSPageData, _
    "VoteCount")
    dgResults.DataSource - _
    DSPageData.Tables("VoteCount").DefaultView
    dgResults.DataBind()
    End If
    End Sub

Hosted by uCoz