投稿者 るきお  (社会人) 投稿日時 2020/5/23 20:02:46
>loadは何回か行われるのか
Webアプリケーションなので、リクエストのたびにLoadが実行されます。
Windowsフォームアプリケーションにたとえると、リクエストされるとexeが起動され、レスポンスを返すとexeが終了する・・・という動作を繰り返しているのに近いです。

ユーザーがはじめてページにアクセスしたときにはIsPostBackプロパティがFalseになっています。
ボタンをクリックするなどするとユーザーは同じページに再度リクエストを送信することになります。これをWebフォームでは「ポストバック」と呼び、このときにリクエストはIsPostBackがTrueです。

つまり、IsPostBackプロパティを使って1回目なのか2回目以降なのかを判断できます。
初期値を設定したい場合、IsPostBackがFalseであるという条件をつけることが多いです。

次の例では2回目以降のアクセスの場合、ポップアップで選択値を表示するようにしています。ButtonのClickイベントでやったほうがわかりやすいですが、サンプルとしての見通しをよくするためLoadに集めてみました。

Public Class WebForm1
    Inherits System.Web.UI.Page

    Private syokinen As Integer = 2015
    Private syuuryounen As Integer = 2020

    Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load

        If Me.IsPostBack = False Then
            'このセッション内ではじめてのリクエストの場合 
            ddList2.Items.Add("ss")
            For j = syokinen To syuuryounen
                ddList2.Items.Add(j)
            Next
        Else
            '2回目以降のリクエストの場合、選択されている値をポップアップで表示します。 
            Dim js As String = "<script>alert(" & ddList2.SelectedValue & ");</script>"
            Me.ClientScript.RegisterStartupScript(Me.GetType"MsgBox", js)
        End If

    End Sub

End Class


もし、Webフォームの基本的な考え方に不慣れなようでしたら、Webフォームについて学習する必要がありますが、なかなか大変なのでお勧めしません。学習コストをかけるのであれば、ASP.NET Coreをお勧めします。