
Partial Class MstCategory
    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
            'マスタ更新処理
            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 機能分類CD As String = CType(lv_Mst.InsertItem.FindControl("txt_機能分類CD"), TextBox).Text
        Dim 機能分類名 As String = CType(lv_Mst.InsertItem.FindControl("txt_機能分類名"), TextBox).Text
        Dim 表示順 As String = CType(lv_Mst.InsertItem.FindControl("txt_表示順"), TextBox).Text

        '------------------
        '-- 入力チェック --
        '------------------
        '必須チェック
        If 機能分類CD = "" Then
            lb_Err.Text = "必須項目が入力されていません。"
            e.Cancel = True
        Else
            Mst追加(機能分類CD, 機能分類名, 表示順)
        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="str機能分類CD"></param>
    ''' <param name="str機能分類名"></param>
    ''' <param name="str表示順"></param>
    ''' <remarks></remarks>
    Private Sub Mst追加(ByVal str機能分類CD As String, _
                        ByVal str機能分類名 As String, _
                        ByVal str表示順 As String)
        Using spm As New StoredProcedureManager("SA_マスタ_機能分類_INSERT")
            spm.AddPrmIn("@機能分類CD", Data.SqlDbType.VarChar, str機能分類CD)
            spm.AddPrmIn("@機能分類名", Data.SqlDbType.VarChar, str機能分類名)
            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>
    ''' <remarks></remarks>
    Private Sub Mst更新(ByVal lv As ListViewItem)
        '画面項目より値を取得
        Dim 機能分類CD As String = CType(lv.FindControl("lb_機能分類CD"), Label).Text
        Dim 機能分類名 As String = CType(lv.FindControl("txt_機能分類名"), TextBox).Text
        Dim 表示順 As String = CType(lv.FindControl("txt_表示順"), TextBox).Text

        Using spm As New StoredProcedureManager("SA_マスタ_機能分類_UPDATE")
            spm.AddPrmIn("@機能分類CD", Data.SqlDbType.VarChar, 機能分類CD)
            spm.AddPrmIn("@機能分類名", Data.SqlDbType.VarChar, 機能分類名)
            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