
Partial Class MstNavigation
    Inherits System.Web.UI.Page

#Region "******************** ページイベント ********************"

    ''' <summary>
    ''' ページロード時
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        '更新ボタンに確認ダイアログをハンドル
        btn_更新.Attributes("onclick") = "return Dialog_YN(""更新してもよろしいですか？"")"
    End Sub

#End Region

#Region "***************** コントロールイベント *****************"

    ''' <summary>
    ''' 更新ボタン押下時
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub btn_更新_Click(sender As Object, e As EventArgs) Handles btn_更新.Click
        'マスタ一覧の行数分、ループ処理
        For Each lv As ListViewItem In lv_Mst.Items
            'マスタ更新チェック処理でエラーの場合
            If Mst更新チェック(lv) Then
                '処理を終了
                Exit Sub
            End If
        Next

        'マスタ一覧の行数分、ループ処理
        For Each lv As ListViewItem In lv_Mst.Items
            'マスタ更新処理
            Mst更新(lv)
        Next

        'ページを再読み込み
        Response.Redirect(Request.RawUrl.ToString)
    End Sub

    ''' <summary>
    ''' マスタ一覧データバインド時
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub lv_Mst_DataBound(sender As Object, e As EventArgs) Handles lv_Mst.DataBound
        '追加ボタンに確認ダイアログをハンドル
        CType(lv_Mst.InsertItem.FindControl("btn_追加"), Button).Attributes("onclick") = "return Dialog_YN(""追加してもよろしいですか？"")"

        'マスタ一覧の行数分、ループ処理
        For Each lv As ListViewItem In lv_Mst.Items
            '削除ボタンに確認ダイアログをハンドル
            CType(lv.FindControl("btn_削除"), Button).Attributes("onclick") = "return Dialog_YN(""削除してもよろしいですか？"")"
        Next
    End Sub

    ''' <summary>
    ''' マスタ一覧レコード挿入前
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub lv_Mst_ItemInserting(sender As Object, e As ListViewInsertEventArgs) Handles lv_Mst.ItemInserting
        '画面項目より値を取得
        Dim MENUCD As String = CType(lv_Mst.InsertItem.FindControl("txt_MENUCD"), TextBox).Text
        Dim PORTAL区分 As String = CType(lv_Mst.InsertItem.FindControl("ddl_PORTAL区分"), DropDownList).SelectedValue   '2015.01.19 Liu MOD
        Dim CONTENT_PATH As String = CType(lv_Mst.InsertItem.FindControl("txt_CONTENT_PATH"), TextBox).Text

        Dim MENU名 As String = CType(lv_Mst.InsertItem.FindControl("txt_MENU名"), TextBox).Text                  '2015.01.19 Liu ADD
        Dim 実装FLG As Boolean = CType(lv_Mst.InsertItem.FindControl("cb_実装FLG"), CheckBox).Checked            '2015.01.19 Liu ADD
        Dim CONTENT_PARAM As String = CType(lv_Mst.InsertItem.FindControl("txt_CONTENT_PARAM"), TextBox).Text    '2015.01.19 Liu ADD
        Dim UC1_PATH As String = CType(lv_Mst.InsertItem.FindControl("txt_UC1_PATH"), TextBox).Text              '2015.01.19 Liu ADD
        Dim UC1_DEFAULT As String = CType(lv_Mst.InsertItem.FindControl("ddl_UC1_DEFAULT"), DropDownList).SelectedValue        '2015.01.19 Liu ADD
        Dim UC1_TITLE As String = CType(lv_Mst.InsertItem.FindControl("txt_UC1_TITLE"), TextBox).Text            '2015.01.19 Liu ADD
        Dim 表示FLG As Boolean = CType(lv_Mst.InsertItem.FindControl("cb_表示FLG"), CheckBox).Checked            '2015.01.19 Liu ADD
        Dim 表示順 As String = CType(lv_Mst.InsertItem.FindControl("txt_表示順"), TextBox).Text                  '2015.01.19 Liu ADD

        '------------------
        '-- 入力チェック --
        '------------------
        '必須チェック
        If MENUCD = "" _
                Or PORTAL区分 = "" _
                Or CONTENT_PATH = "" Then
            lb_Err.Text = "必須項目が入力されていません。"
            e.Cancel = True
        Else
            Mst追加(MENUCD, PORTAL区分, MENU名, 実装FLG, _
                    CONTENT_PATH, CONTENT_PARAM, _
                    UC1_PATH, UC1_DEFAULT, UC1_TITLE, 表示FLG, 表示順) '2015.01.19 Liu ADD
        End If
    End Sub

    ''' <summary>
    ''' マスタ一覧レコード挿入後
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub lv_Mst_ItemInserted(sender As Object, e As ListViewInsertedEventArgs) Handles lv_Mst.ItemInserted
        'ページを再読み込み
        Response.Redirect(Request.RawUrl.ToString)
    End Sub

    ''' <summary>
    ''' マスタ一覧レコード削除後
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub lv_Mst_ItemDeleted(sender As Object, e As ListViewDeletedEventArgs) Handles lv_Mst.ItemDeleted
        'ページを再読み込み
        Response.Redirect(Request.RawUrl.ToString)
    End Sub

#End Region

#Region "******************* Sub及びFunction ********************"

    ''' <summary>
    ''' マスタ追加処理
    ''' </summary>
    ''' <param name="strMenuCD"></param>
    ''' <param name="strPORTAL区分"></param>
    ''' <param name="strMenu名"></param>
    ''' <param name="bol実装FLG"></param>
    ''' <param name="strContent_Path"></param>
    ''' <param name="strContent_Param"></param>
    ''' <param name="strUc1_Path"></param>
    ''' <param name="strUc1_Default"></param>
    ''' <param name="strUc1_Title"></param>
    ''' <param name="bol表示FLG"></param>
    ''' <param name="str表示順"></param>
    ''' <remarks></remarks>
    Private Sub Mst追加(ByVal strMenuCD As String, _
                        ByVal strPORTAL区分 As String, _
                        ByVal strMenu名 As String, _
                        ByVal bol実装FLG As Boolean, _
                        ByVal strContent_Path As String, _
                        ByVal strContent_Param As String, _
                        ByVal strUc1_Path As String, _
                        ByVal strUc1_Default As String, _
                        ByVal strUc1_Title As String, _
                        ByVal bol表示FLG As Boolean, _
                        ByVal str表示順 As String)
        Using spm As New StoredProcedureManager("SA_マスタ_MENU_INSERT")
            spm.AddPrmIn("@MENUCD", Data.SqlDbType.VarChar, strMenuCD)
            spm.AddPrmIn("@PORTAL区分", Data.SqlDbType.VarChar, strPORTAL区分)
            spm.AddPrmIn("@MENU名", Data.SqlDbType.VarChar, strMenu名)
            spm.AddPrmIn("@実装FLG", Data.SqlDbType.Bit, bol実装FLG)
            spm.AddPrmIn("@CONTENT_PATH", Data.SqlDbType.VarChar, strContent_Path)
            spm.AddPrmIn("@CONTENT_PARAM", Data.SqlDbType.VarChar, strContent_Param)
            spm.AddPrmIn("@UC1_PATH", Data.SqlDbType.VarChar, strUc1_Path)
            spm.AddPrmIn("@UC1_DEFAULT", Data.SqlDbType.VarChar, strUc1_Default)
            spm.AddPrmIn("@UC1_TITLE", Data.SqlDbType.VarChar, strUc1_Title)
            spm.AddPrmIn("@表示FLG", Data.SqlDbType.Bit, bol表示FLG)
            Dim intWork As Integer
            Dim obj表示順 As Object
            If Integer.TryParse(str表示順, intWork) Then
                obj表示順 = intWork
            Else
                obj表示順 = DBNull.Value
            End If
            spm.AddPrmIn("@表示順", Data.SqlDbType.Int, obj表示順)
            spm.Exec()
        End Using
    End Sub

    ''' <summary>
    ''' マスタ更新チェック処理
    ''' </summary>
    ''' <param name="lv"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Function Mst更新チェック(ByVal lv As ListViewItem) As Boolean
        '画面項目より値を取得
        Dim CONTENT_PATH As String = CType(lv.FindControl("txt_CONTENT_PATH"), TextBox).Text

        '------------------
        '-- 入力チェック --
        '------------------
        '必須チェック
        If CONTENT_PATH = "" Then
            lb_Err.Text = "【エラー】必須項目が入力されていません。"
            Return 1
        End If

        Return 0
    End Function

    ''' <summary>
    ''' マスタ更新処理
    ''' </summary>
    ''' <param name="lv"></param>
    ''' <remarks></remarks>
    Private Sub Mst更新(ByVal lv As ListViewItem)
        '画面項目より値を取得
        Dim MENUCD As String = CType(lv.FindControl("lb_MENUCD"), Label).Text
        Dim PORTAL区分 As String = CType(lv.FindControl("lb_PORTAL区分"), Label).Text
        Dim MENU名 As String = CType(lv.FindControl("txt_MENU名"), TextBox).Text
        Dim 実装FLG As Boolean = CType(lv.FindControl("cb_実装FLG"), CheckBox).Checked
        Dim CONTENT_PATH As String = CType(lv.FindControl("txt_CONTENT_PATH"), TextBox).Text
        Dim CONTENT_PARAM As String = CType(lv.FindControl("txt_CONTENT_PARAM"), TextBox).Text
        Dim UC1_PATH As String = CType(lv.FindControl("txt_UC1_PATH"), TextBox).Text
        Dim UC1_DEFAULT As String = CType(lv.FindControl("ddl_UC1_DEFAULT"), DropDownList).SelectedValue
        Dim UC1_TITLE As String = CType(lv.FindControl("txt_UC1_TITLE"), TextBox).Text
        Dim 表示FLG As Boolean = CType(lv.FindControl("cb_表示FLG"), CheckBox).Checked
        Dim 表示順 As String = CType(lv.FindControl("txt_表示順"), TextBox).Text

        Using spm As New StoredProcedureManager("SA_マスタ_MENU_UPDATE")
            spm.AddPrmIn("@MENUCD", Data.SqlDbType.VarChar, MENUCD)
            spm.AddPrmIn("@PORTAL区分", Data.SqlDbType.VarChar, PORTAL区分)
            spm.AddPrmIn("@MENU名", Data.SqlDbType.VarChar, MENU名)
            spm.AddPrmIn("@実装FLG", Data.SqlDbType.Bit, 実装FLG)
            spm.AddPrmIn("@CONTENT_PATH", Data.SqlDbType.VarChar, CONTENT_PATH)
            spm.AddPrmIn("@CONTENT_PARAM", Data.SqlDbType.VarChar, CONTENT_PARAM)
            spm.AddPrmIn("@UC1_PATH", Data.SqlDbType.VarChar, UC1_PATH)
            spm.AddPrmIn("@UC1_DEFAULT", Data.SqlDbType.VarChar, UC1_DEFAULT)
            spm.AddPrmIn("@UC1_TITLE", Data.SqlDbType.VarChar, UC1_TITLE)
            spm.AddPrmIn("@表示FLG", Data.SqlDbType.Bit, 表示FLG)
            Dim intWork As Integer
            Dim obj表示順 As Object
            If Integer.TryParse(表示順, intWork) Then
                obj表示順 = intWork
            Else
                obj表示順 = DBNull.Value
            End If
            spm.AddPrmIn("@表示順", Data.SqlDbType.Int, obj表示順)
            spm.Exec()
        End Using
    End Sub

#End Region

End Class