Page.isPostBack в ASP.NET

Page.isPostBack в ASP.NET

Одной из замечательных возможностей Web-форм, является возможность помнить значения форм для каждого пользователя. Значения, введенные пользователем выслеживаются ViewState, который сохраняет предыдущие введенные в форму значения. Также ViewState может быть аннулирован событием Page_Load, которое может привести к повторению вызова некоторых команд.

Page.isPostBack может быть использован для предотвращения сохранения страницы, в случаях, когда это не требуется. Это иллюстрирует следующий пример<%@ import namespace="system.datd.SQL" %>

 

<script language="VB" runat=server>

 

Sub Page_Load(myList AS Object,E as EventArgs)

 

  ' проверяет состояние isPostBack

  if NOT Page.IsPostBack Then

           

              Dim dbRead AS SQLDataReader

              Dim dbComm AS SQLCommand

              Dim SQLserver AS String

              Dim SQL AS String

           

              SQLserver = "server=database;uid=user_name;password=pwd;"

           

              SQL = "Select col1 from test"

              dbComm = New SQLCommand(SQL,SQLserver)

              dbComm.ActiveConnection.Open()

              dbComm.execute(dbRead)

                       

                        While dbRead.Read()

                          list1.items.add(New ListItem(dbRead.Item("col1")))

              End While

                       

            End if

 

End Sub

 

</script>

 

<FORM RUNAT="server" method="get">

<asp:DropDownList id="list1" runat="server"/>

</FORM>

В приведенном выше примере ниспадающий список list1 возвращается форму заполненной, лишь когда она впервые загружена. Если форма обновляется впоследствии, то Page.isPostBack установлен в значение TRUE, и DropDownList возвращает существующие значения, без выполнения запроса.

Это новое преимущество ASP+, используемое для наблюдения за обновлением форм и предотвращения повторного выполнения команд.