Public Class KohoList
    Inherits System.Web.UI.Page

    Private _一覧表示パターン As Integer = 1
    Private _単票表示パターン As Integer = 1
    Public ListPageNo As Integer
    Private ListPageData As List(Of String)
    Private ListZoomPageData As List(Of String)
    Private ListSendButton As List(Of Button)

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack Then
            ' ポストバック時
            If Not IsNothing(Session(MyConstant.SessionKey.候補者リスト)) Then
                ListPageData = CType(Session(MyConstant.SessionKey.候補者リスト), List(Of String))
            End If
            If Not IsNothing(Session(MyConstant.SessionKey.候補者リスト頁数)) Then
                ListPageNo = CType(Session(MyConstant.SessionKey.候補者リスト頁数), Integer)
            End If
            If Not IsNothing(Session(MyConstant.SessionKey.候補者リストズーム)) Then
                ListZoomPageData = CType(Session(MyConstant.SessionKey.候補者リストズーム), List(Of String))
            End If
            If Not IsNothing(Session(MyConstant.SessionKey.一覧表示パターン)) Then
                _一覧表示パターン = CType(Session(MyConstant.SessionKey.一覧表示パターン), Integer)
            End If
            PrintClientLogJavaScript()
        Else
            ' 初期表示時
            Page.Header.Title = MyProperty.システムＭ.選挙コード名称

            ' セッションタイムアウトチェック
            If IsNothing(Session(MyConstant.SessionKey.投票者ID)) Then
                Throw New Exception(MyMessage.ログ.セッションタイムアウト)
            End If

            ' クエリ文字列から選挙IDをセッションに保存
            If Not IsNothing(Page.Request.QueryString.Get(MyConstant.QueryStringKey.選挙ID)) Then
                Session(MyConstant.SessionKey.選挙ID) = Page.Request.QueryString.Get(MyConstant.QueryStringKey.選挙ID)
            End If

            ' 選挙Mを取得する
            Dim ds As DataSet1 = New DataSet1
            Using myDataBase As MyDataBase = New MyDataBase
                myDataBase.Fill選挙MBy選挙ID(ds, Session(MyConstant.SessionKey.選挙ID))
                If ds.選挙M.Rows.Count > 0 Then
                    LtlSenkyoMei.Text = ds.選挙M(0).選挙名称
                    _一覧表示パターン = ds.選挙M(0).一覧表示パターン
                    _単票表示パターン = ds.選挙M(0).単票表示パターン
                    Session(MyConstant.SessionKey.一覧表示パターン) = _一覧表示パターン
                End If
            End Using

            If _一覧表示パターン <> MyEnum.一覧表示パターン.ルーペ型 Then
                If _単票表示パターン = MyEnum.単票表示パターン.写真型 Then
                    vote_container.Style.Add("width", "1000px")
                    vote_container.Style.Add("height", "440px")
                Else
                    vote_container.Style.Add("width", "1100px")
                    vote_container.Style.Add("height", "400px")
                End If
            End If

            ' 投票数を表示
            lblNumOfVotes.Text = CType(Session(MyConstant.SessionKey.投票数), String) & "票の投票"

            ' クエリ文字列から検索キーをセッションに保存
            If _一覧表示パターン = MyEnum.一覧表示パターン.政党検索 Then
                If Not IsNothing(Page.Request.QueryString.Get(MyConstant.QueryStringKey.政党検索キー)) Then
                    Session(MyConstant.SessionKey.政党検索キー) = Page.Request.QueryString.Get(MyConstant.QueryStringKey.政党検索キー)
                End If
            ElseIf _一覧表示パターン = MyEnum.一覧表示パターン.名前検索 Then
                If Not IsNothing(Page.Request.QueryString.Get(MyConstant.QueryStringKey.名前検索キー)) Then
                    Session(MyConstant.SessionKey.名前検索キー) = Page.Request.QueryString.Get(MyConstant.QueryStringKey.名前検索キー)
                End If
            End If

            ' 候補者Mを取得する。
            Using myDataBase As MyDataBase = New MyDataBase
                myDataBase.Fill候補者MBy選挙ID(ds, Session(MyConstant.SessionKey.選挙ID))
            End Using

            ' 検索対象候補者のみ抽出
            Filter検索対象候補者(ds)

            ' 候補者一覧のHTMLタグ動的出力
            'If Not IsNothing(Session(MyConstant.SessionKey.候補者リスト頁数)) Then ' 状態保持する場合
            '    ListPageNo = CType(Session(MyConstant.SessionKey.候補者リスト頁数), Integer)
            'Else
            ListPageNo = 0
            'End If
            ListPageData = New List(Of String)
            AppendTag候補者一覧(ds)
            Session(MyConstant.SessionKey.候補者リスト) = ListPageData
            Session(MyConstant.SessionKey.候補者リスト頁数) = ListPageNo
            If _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 Then
                ListZoomPageData = New List(Of String)
                AppendTagZoomList候補者一覧(ds)
                Session(MyConstant.SessionKey.候補者リストズーム) = ListZoomPageData
            End If

            If Not MyProperty.システムＭ.Isインターネット投票型 Then
                ' 来場型の場合、ブラウザのタッチログのタグ生成
                LtlClientLog.Text = "<APPLET CODE=""ClientLog.class"" ARCHIVE=""ClientLog.jar"" NAME=""ClientLog"" WIDTH=""0"" HEIGHT=""0"" MAYSCRIPT></APPLET>"
                'Dim logTxt As String = "<OBJECT CLASSID=""CLSID：8AD9C840-044E-11D1-B3E9-00805F499D93"" WIDTH=""0"" HEIGHT=""0"">"
                'logTxt &= "<PARAM NAME=""TYPE"" VALUE=""application/x-java-applet""><PARAM NAME=""NAME"" VALUE=""ClientLog"">"
                'logTxt &= "<PARAM NAME=""CODE"" VALUE=""ClientLog.class""><PARAM NAME=""ARCHIVE"" VALUE=""ClientLog.jar"">"
                'logTxt &= "<PARAM NAME=""MAYSCRIPT"" VALUE=""true""></OBJECT>"
                'LtlClientLog.Text = logTxt
                PrintClientLogJavaScript()
            End If
        End If
    End Sub

    Private Sub Filter検索対象候補者(ByVal ds As DataSet1)
        If _一覧表示パターン = MyEnum.一覧表示パターン.政党検索 Then
            ' 政党検索の場合
            Dim key As String = Session(MyConstant.SessionKey.政党検索キー)
            If Not key = "all" Then
                For Each row As DataSet1.候補者MRow In ds.候補者M
                    If Not row.政党ID.TrimEnd = key Then
                        ' キーで候補者を絞る
                        row.Delete()
                    End If
                Next
                ds.AcceptChanges()
            End If
        ElseIf _一覧表示パターン = MyEnum.一覧表示パターン.名前検索 Then
            ' 名前検索の場合
            Dim key As String = Session(MyConstant.SessionKey.名前検索キー)
            If Not key = "all" Then
                For Each row As DataSet1.候補者MRow In ds.候補者M
                    If Not MyUtility.Get頭文字(row.候補者名称かな) = key Then
                        ' キーで候補者を絞る
                        row.Delete()
                    End If
                Next
                ds.AcceptChanges()
            End If
        End If
    End Sub

    Private Sub AppendTag候補者一覧(ByVal ds As DataSet1)

        Dim tag As StringBuilder = New StringBuilder
        Dim tag2 As New StringBuilder
        Dim cnt As Integer = 1
        Dim _is投票用紙 As Boolean = False
        Dim name_kouho As String = ""
        Dim imgFlg As Boolean = False

        For Each row As DataSet1.候補者MRow In ds.候補者M
            imgFlg = False
            If _一覧表示パターン = MyEnum.一覧表示パターン.ポスケ型 Then
                ' ポスケ型の場合
                vote.Attributes("class") = "poster"
                tag.Append("<li>")
                tag2.Append("<li>")
            ElseIf _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 Then
                ' ルーペ型の場合
                tag.Append("<li class=""person-mid"">")
                tag2.Append("<li class=""person-mid"">")
            Else
                If _単票表示パターン = MyEnum.単票表示パターン.投票用紙型 Then
                    ' 投票用紙型の場合
                    tag.Append("<li class=""touhyouyoushi"">")
                    tag2.Append("<li class=""touhyouyoushi"">")
                    _is投票用紙 = True
                Else
                    tag.Append("<li class=""person"">")
                    tag2.Append("<li class=""person"">")
                End If
            End If
            tag.Append("<a href=""KohoDetail.aspx?" + MyConstant.QueryStringKey.候補者ID + "=" + row.候補者ID.TrimEnd + """>")
            tag2.Append("<a href=""KohoDetail.aspx?" + MyConstant.QueryStringKey.候補者ID + "=" + row.候補者ID.TrimEnd + """>")
            If Not _is投票用紙 Then
                ' 投票用紙型でない場合
                If Not String.IsNullOrEmpty(row.画像ファイル名.TrimEnd) Then
                    tag.Append("<img src=""" + MyConstant.候補者画像フォルダ + row.画像ファイル名.TrimEnd + """ alt=""" + row.候補者名称 + """ />")
                    tag2.Append("<img src=""" + MyConstant.候補者画像フォルダ + row.画像ファイル名.TrimEnd + """ alt=""" + row.候補者名称 + """ />")
                    imgFlg = True
                Else
                    tag.Replace(">", " style=""height: 200px;"">", tag.Length - 1, 1)
                    tag2.Replace(">", " style=""height: 200px;"">", tag2.Length - 1, 1)
                End If
            End If
            If Not _一覧表示パターン = MyEnum.一覧表示パターン.ポスケ型 Then
                ' ポスケ型でない場合
                If imgFlg Then
                    tag.Append(Me.GetSpanTag(row.候補者名称, row.政党ID.TrimEnd))
                    tag2.Append(Me.GetSpanTag(row.候補者名称, row.政党ID.TrimEnd))
                Else
                    'tag.Append(Me.GetSpanTag2(row.候補者名称, row.政党ID.TrimEnd, imgFlg, row.表示順.ToString))
                    'tag2.Append(Me.GetSpanTag2(row.候補者名称, row.政党ID.TrimEnd, imgFlg, row.表示順.ToString))
                    tag.Append(Me.GetSpanTag2(row.候補者名称, row.政党ID.TrimEnd, imgFlg, row.候補者ID.TrimEnd))
                    tag2.Append(Me.GetSpanTag2(row.候補者名称, row.政党ID.TrimEnd, imgFlg, row.候補者ID.TrimEnd))
                End If
                'tag.Append(row.候補者名称.Replace("　", " ") + "</span>")
                name_kouho = row.候補者名称.Replace("　", " ")
                If name_kouho.IndexOf("↓") >= 0 Then
                    name_kouho = name_kouho.Replace("↓", "<br/>")
                ElseIf name_kouho.Length > 12 Then
                    name_kouho = name_kouho.Substring(0, 12) & "<br/>" & name_kouho.Substring(12)
                End If
                tag.Append(name_kouho + "</span>")
                tag2.Append(name_kouho + "</span>")
                Using myDataBase As MyDataBase = New MyDataBase
                    tag.Append("<span class=""seitou-name"">" + myDataBase.Get政党名称By政党ID(row.政党ID.TrimEnd) + "</span>")
                    tag2.Append("<span class=""seitou-name"">" + myDataBase.Get政党名称By政党ID(row.政党ID.TrimEnd) + "</span>")
                End Using
            End If
            If _is投票用紙 Then
                ' 投票用紙型の場合
                tag.Append("<span class=""senkyo-mei-tate"">" + LtlSenkyoMei.Text + "</span>")
                tag2.Append("<span class=""senkyo-mei-tate"">" + LtlSenkyoMei.Text + "</span>")
            End If
            tag.Append("</a>")
            tag.Append("</li>")
            tag.Append(System.Environment.NewLine)
            tag2.Append("</a>")
            tag2.Append("</li>")
            tag2.Append(System.Environment.NewLine)

            If _一覧表示パターン = MyEnum.一覧表示パターン.ポスケ型 Then
                ' ポスケ型の場合
                'If cnt Mod 7 = 0 Then
                '    tag.Append("<li class=""divider""></li>")
                '    tag.Append(System.Environment.NewLine)
                'End If
            ElseIf _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 Then
                ' ルーペ型の場合
                If cnt Mod 10 = 0 Then
                    tag.Append("<li class=""divider""></li>")
                    tag.Append(System.Environment.NewLine)
                    tag2.Append("<li class=""divider""></li>")
                    tag2.Append(System.Environment.NewLine)
                End If
            End If
            'If _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 Then
            '    If cnt Mod 10 = 0 OrElse cnt = ds.候補者M.Rows.Count Then
            '        ListPageData.Add(tag2.ToString)
            '        tag2.Length = 0
            '    End If
            'Else
            If cnt Mod 20 = 0 OrElse cnt = ds.候補者M.Rows.Count Then
                ListPageData.Add(tag2.ToString)
                tag2.Length = 0
            End If
            'End If

            cnt = cnt + 1
        Next

        ' 戻るボタンの追加
        Dim bBtn As String = ""
        If _一覧表示パターン = MyEnum.一覧表示パターン.政党検索 Then
            tag.Append("<li><a id=""keypad-back"" href=""SeitoList.aspx"" class=""btn"">戻る</a></li>")
            bBtn = "<li><a id=""keypad-back"" href=""SeitoList.aspx"" class=""btn"">戻る</a></li>"
            cnt += 1
        ElseIf _一覧表示パターン = MyEnum.一覧表示パターン.名前検索 Then
            tag.Append("<li><a id=""keypad-back"" href=""Keypad.aspx"" class=""btn"">戻る</a></li>")
            bBtn = "<li><a id=""keypad-back"" href=""Keypad.aspx"" class=""btn"">戻る</a></li>"
            cnt += 1
        End If
        tag.Append(System.Environment.NewLine)

        'LtlKohoList.Text = tag.ToString
        If Not String.IsNullOrEmpty(bBtn) Then
            LtlKohoList.Text = ListPageData.Item(ListPageNo) & bBtn
        Else
            LtlKohoList.Text = ListPageData.Item(ListPageNo)
        End If
        Me.SetInitButton()
        Me.SetBtn()

    End Sub

    Private Sub AppendTagZoomList候補者一覧(ByVal ds As DataSet1)

        Dim tag As StringBuilder = New StringBuilder
        Dim tag2 As StringBuilder = New StringBuilder
        Dim cnt As Integer = 1
        For Each row As DataSet1.候補者MRow In ds.候補者M
            tag.Append("<li class=""person-mini"">")
            tag2.Append("<li class=""person-mini"">")
            If Not String.IsNullOrEmpty(row.画像ファイル名.TrimEnd) Then
                tag.Append("<img src=""" + MyConstant.候補者画像フォルダ + row.画像ファイル名.TrimEnd + """ alt=""" + row.候補者名称 + """ />")
                tag2.Append("<img src=""" + MyConstant.候補者画像フォルダ + row.画像ファイル名.TrimEnd + """ alt=""" + row.候補者名称 + """ />")
            End If
            Dim name As String = row.候補者名称.Replace("　", " ")
            If name.Split(" ").Length > 1 Then
                name = name.Split(" ")(0)
            End If
            If Not String.IsNullOrEmpty(row.画像ファイル名.TrimEnd) Then
                tag.Append("<span>" + name + "</span>")
                tag2.Append("<span>" + name + "</span>")
            Else
                tag.Append("<span style=""margin-top: 1px;"">" + name + "</span>")
                tag2.Append("<span style=""margin-top: 1px;"">" + name + "</span>")
            End If
            tag.Append("</li>")
            tag.Append(System.Environment.NewLine)
            tag2.Append("</li>")
            tag2.Append(System.Environment.NewLine)

            If cnt Mod 20 = 0 OrElse cnt = ds.候補者M.Rows.Count Then
                ListZoomPageData.Add(tag2.ToString)
                tag2.Length = 0
            End If

            cnt = cnt + 1
        Next

        'LtlZoomList.Text = tag.ToString
        LtlZoomList.Text = ListZoomPageData.Item(ListPageNo)
    End Sub

    ''' <summary>
    ''' ブラウザ内クリックログJavaScriptの生成
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub PrintClientLogJavaScript()
        Dim cs As ClientScriptManager = Me.ClientScript
        Dim uid As String = Session(MyConstant.SessionKey.投票者ID)
        Dim sb As StringBuilder = New StringBuilder()
        sb.Append("<script type=""text/javascript"">")
        sb.Append("function getMouseXY_ie() {")
        sb.Append("ClientLog.main1('" + uid + "', location.href, 'x:' + event.clientX + ',y:' + event.clientY + ',max:' + document.documentElement.clientWidth + '-' + document.documentElement.clientHeight)")
        sb.Append("}")
        sb.Append("function getMouseXY(event) {")
        sb.Append("ClientLog.main1('" + uid + "', location.href, 'x:' + event.clientX + ',y:' + event.clientY + ',max:' + document.documentElement.clientWidth + '-' + document.documentElement.clientHeight)")
        sb.Append("}")
        sb.Append("document.onclick = (document.all || window.navigator.userAgent.toLowerCase().indexOf('trident') != -1) ? getMouseXY_ie : getMouseXY;")
        'sb.Append("document.onclick=(document.all) ? getMouseXY_ie : getMouseXY;")
        sb.Append("</script>")
        'cs.RegisterClientScriptBlock(Me.GetType, "ClientLogCallback", sb.ToString())
        cs.RegisterStartupScript(Me.GetType, "ClientLogCallback", sb.ToString())
    End Sub

    'Private Function GetSpanTag(ByVal name As String, ByVal seito As String) As String
    '    If name.Length > 16 Then
    '        Return "<span class=""xx-small"">"
    '    ElseIf name.Length > 12 Then
    '        Return "<span class=""x-small"">"
    '    ElseIf name.Length > 8 Then
    '        Return "<span class=""small"">"
    '    Else
    '        If seito.TrimEnd.Length = 0 Then
    '            Return "<span class=""seitou-nasi"">"
    '        Else
    '            Return "<span>"
    '        End If
    '    End If
    'End Function

    Private Function GetSpanTag(ByVal name As String, ByVal seito As String) As String

        Select Case _一覧表示パターン
            Case MyEnum.一覧表示パターン.ルーペ型
                Return "<span style=""font-size:16px;"">"
            Case Else
                Return "<span style=""font-size:10px;"">"
        End Select

        'If name.Length >= 10 Then
        '    If _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 Then
        '        Return "<span style=""font-size:18px;"">"
        '    Else
        '        Return "<span style=""font-size:11px;"">"
        '    End If
        'ElseIf name.Length > 8 Then
        '    If _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 Then
        '        Return "<span style=""font-size:20px;"">"
        '    Else
        '        Return "<span style=""font-size:12px;"">"
        '    End If
        'ElseIf name.Length > 6 Then
        '    If _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 Then
        '        Return "<span style=""font-size:22px;"">"
        '    Else
        '        Return "<span style=""font-size:13px;"">"
        '    End If
        'Else
        '    If seito.TrimEnd.Length = 0 Then
        '        Return "<span class=""seitou-nasi"">"
        '    Else
        '        Return "<span>"
        '    End If
        'End If
    End Function

    Private Function GetSpanTag2(ByVal name As String, ByVal seito As String, ByRef imgFlg As Boolean, ByRef No As String) As String
        Dim setNo As String = "<span class=""entryNo"">" & No & ".</span>"

        Select Case _単票表示パターン
            Case MyEnum.単票表示パターン.写真型
                If imgFlg Then  ' 画像あり
                    Return ("<span class=""x-small"" style=""left: 15px;"">")
                Else            ' 画像なし
                    Select Case _一覧表示パターン
                        Case MyEnum.一覧表示パターン.ルーペ型
                            Return (setNo & "<span class=""x-small"" style=""margin-top: 0;"">")
                        Case Else
                            Return (setNo & "<span class=""x-small"">")
                    End Select
                End If

            Case Else   ' 投票用紙型
                If seito.TrimEnd.Length = 0 Then
                    If name.Length > 12 Then
                        Return ("<span class=""seitou-nasi"">")
                    Else
                        Return ("<span class=""seitou-nasi"" style=""left: 24px;"">")
                    End If
                Else
                    If name.Length > 12 Then
                        Return ("<span class=""x-small"" style=""left: 11px;"">")
                    Else
                        Return ("<span class=""x-small"">")
                    End If
                End If

        End Select

        'If name.Length > 10 Then
        '    If _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 AndAlso imgFlg = False Then
        '        Return (setNo & "<span class=""x-small"" style=""margin-top: 0;"">")
        '    ElseIf _単票表示パターン = MyEnum.単票表示パターン.写真型 AndAlso imgFlg = False Then
        '        Return (setNo & "<span class=""x-small"">")
        '    Else
        '        Return ("<span class=""x-small"" style=""left: 15px;"">")
        '    End If
        'ElseIf name.Length > 8 Then
        '    If _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 AndAlso imgFlg = False Then
        '        Return (setNo & "<span class=""x-small"" style=""margin-top: 0;"">")
        '    ElseIf _単票表示パターン = MyEnum.単票表示パターン.写真型 AndAlso imgFlg = False Then
        '        Return (setNo & "<span class=""x-small"">")
        '    Else
        '        Return ("<span class=""x-small"" style=""left: 15px;"">")
        '    End If
        'Else
        '    If seito.TrimEnd.Length = 0 Then
        '        If _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 AndAlso imgFlg = False Then
        '            Return (setNo & "<span class=""x-small"" style=""margin-top: 0;"">")
        '        ElseIf _単票表示パターン = MyEnum.単票表示パターン.写真型 AndAlso imgFlg = False Then
        '            Return (setNo & "<span class=""x-small"">")
        '        Else
        '            Return ("<span class=""seitou-nasi"">")
        '        End If
        '    Else
        '        If _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 AndAlso imgFlg = False Then
        '            Return (setNo & "<span class=""x-small"" style=""margin-top: 0;"">")
        '        ElseIf _単票表示パターン = MyEnum.単票表示パターン.写真型 AndAlso imgFlg = False Then
        '            Return (setNo & "<span class=""x-small"">")
        '        Else
        '            Return ("<span>")
        '        End If
        '    End If
        'End If
    End Function

    ''' <summary>
    ''' 前頁・次頁ボタンの使用可否設定
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub SetBtn()
        Dim i As Integer
        Dim strtNo As Integer = 1
        Dim endNo As Integer = 0
        Me.SetButtonList()

        If IsNothing(ListSendButton) Then Exit Sub

        ' ボタン初期化
        For i = 0 To ListSendButton.Count - 1
            ListSendButton(i).Style.Clear()
        Next

        ' style設定
        For i = 0 To ListSendButton.Count - 1
            If i = ListPageNo Then
                ListSendButton(i).Enabled = False
                ListSendButton(i).Style.Add("color", "#ffffff")
                ListSendButton(i).Style.Add("cursor", "default")
                ListSendButton(i).Style.Add("background", "#ebebeb")
            Else
                ListSendButton(i).Enabled = True
            End If
        Next
    End Sub

    ''' <summary>
    ''' 表示ボタンの設定
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub SetInitButton()
        Me.SetButtonList()
        Dim i As Integer
        Dim maxCnt As Integer = ListPageData.Count - 1
        Dim noTxt As String = ""

        For i = 0 To ListSendButton.Count - 1
            If i > maxCnt Then
                ListSendButton(i).Visible = False
            ElseIf i = maxCnt Then
                noTxt = ListSendButton(i).Text
                'ListSendButton(i).Text = noTxt.Substring(0, noTxt.IndexOf("～") + 1)
            End If
        Next
    End Sub

    ''' <summary>
    ''' 遷移ボタンリスト作成
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub SetButtonList()
        ListSendButton = New List(Of Button)

        ListSendButton.Add(btn01)
        ListSendButton.Add(btn02)
        ListSendButton.Add(btn03)
        ListSendButton.Add(btn04)
        ListSendButton.Add(btn05)
    End Sub

    Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn01.Click, btn02.Click, btn03.Click, btn04.Click, btn05.Click
        Dim btn As Button = CType(sender, Button)
        Select Case btn.ID
            Case "btn01"
                ListPageNo = 0
            Case "btn02"
                ListPageNo = 1
            Case "btn03"
                ListPageNo = 2
            Case "btn04"
                ListPageNo = 3
            Case "btn05"
                ListPageNo = 4
        End Select
        LtlKohoList.Text = ListPageData(ListPageNo)
        If _一覧表示パターン = MyEnum.一覧表示パターン.ルーペ型 Then
            LtlZoomList.Text = ListZoomPageData(ListPageNo)
        End If
        Session(MyConstant.SessionKey.候補者リスト頁数) = ListPageNo
        Me.SetBtn()
    End Sub
End Class