usercontrol.ascx.vb

来自「C#语言制作asp.net网上商店的」· VB 代码 · 共 186 行

VB
186
字号
Imports NetShopForge.Library.User
Imports System.Collections.Generic
Imports AspNetSecurity = System.Web.Security

Partial Class Admin_Management_Controls_UserControl
    Inherits System.Web.UI.UserControl

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            hfSearchText.Value = ""

            BindData()
        End If
    End Sub

    Private Sub BindData()

        Dim msuCollection As MembershipUserCollection = Nothing
        Dim totalRecords As Integer = 0
        Dim SearchText As String = hfSearchText.Value

        If SearchText.Trim().Length <> 0 Then
            SearchText = SearchText.Replace("*", "%")
            SearchText = SearchText.Replace("?", "_")
            'INSTANT VB NOTE: Embedded comments are not maintained by Instant VB
            'ORIGINAL LINE: if (ddlSearch.SelectedIndex == 0 /* UserName */)
            If ddlSearch.SelectedIndex = 0 Then
                msuCollection = Membership.FindUsersByName(SearchText, Pager.CurrentPageIndex - 1, Pager.PageSize, totalRecords)
            Else
                msuCollection = Membership.FindUsersByEmail(SearchText, Pager.CurrentPageIndex - 1, Pager.PageSize, totalRecords)
            End If
        Else
            msuCollection = AspNetSecurity.Membership.GetAllUsers(Pager.CurrentPageIndex - 1, Pager.PageSize, totalRecords)
        End If

        'filter role 
        'ORIGINAL LINE: if (dllUserType.SelectedIndex == 0 /* all */ no filter)
        If ddlUserType.SelectedIndex = 0 Then
            gvUser.DataSource = msuCollection
        Else
            Dim users As New Generic.List(Of MembershipUser)
            For Each mu As MembershipUser In msuCollection
                If Roles.IsUserInRole(mu.UserName, ddlUserType.SelectedValue) Then users.Add(mu)
            Next
            totalRecords = users.Count
            gvUser.DataSource = users
        End If



        Pager.RecordCount = totalRecords
        gvUser.DataBind()
        Pager.CustomInfoHTML = "记录总数:" + Pager.RecordCount.ToString()
        Pager.CustomInfoHTML += " 总页数:" + Pager.PageCount.ToString()
        Pager.CustomInfoHTML += " 当前页:" + Pager.CurrentPageIndex.ToString()
    End Sub

    Protected Sub ChangePage(ByVal src As Object, ByVal e As EventArgs) Handles Pager.PageChanged
        ' Dim startTime As System.DateTime = System.DateTime.Now

        BindData()
        'Dim endTime As System.DateTime = System.DateTime.Now
        'Dim ts As System.TimeSpan = endTime - startTime
        ''   Label1.Text = "页面执行时间:" & ts.Milliseconds & " 毫秒"
    End Sub


    Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click
        hfSearchText.Value = txtSearch.Text
        If hfSearchText.Value = "输入查询关键字" Then hfSearchText.Value = ""
        BindData()
        txtSearch.Text = ""
    End Sub


    Protected Sub SearchForUsers()

        Dim msuCollection As MembershipUserCollection = Nothing
        Dim text As String = txtSearch.Text
        text = text.Replace("*", "%")
        text = text.Replace("?", "_")
        Dim total As Integer = 0
        Dim totalRecords As Integer
        If text.Trim().Length <> 0 Then
            'INSTANT VB NOTE: Embedded comments are not maintained by Instant VB
            'ORIGINAL LINE: if (dropDown.SelectedIndex == 0 /* userID */)
            If ddlSearch.SelectedIndex = 0 Then
                msuCollection = Membership.FindUsersByName(text, Pager.CurrentPageIndex - 1, Pager.PageSize, totalRecords)
            Else
                msuCollection = Membership.FindUsersByEmail(text, Pager.CurrentPageIndex - 1, Pager.PageSize, totalRecords)
            End If
        End If

        Dim role As String = ddlUserType.SelectedValue

        If role <> "All" Then
            For Each mu As MembershipUser In msuCollection
                If Not Roles.IsUserInRole(mu.UserName, role) Then msuCollection.Remove(mu.UserName)
            Next
        End If

        Pager.RecordCount = msuCollection.Count
        gvUser.PageIndex = 0
        gvUser.DataSource = msuCollection
        gvUser.DataBind()

    End Sub

    Protected Sub btnUserAddNew_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUserAddNew.Click
        My.Response.Redirect("~/Admin/Management/Users.aspx?mode=addUser")
    End Sub


    Protected Sub btnUserDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUserDelete.Click
        Try
            For i As Integer = 0 To gvUser.Rows.Count - 1
                If gvUser.Rows(i).RowType = DataControlRowType.DataRow Then
                    Dim cbSelect As CheckBox = CType(gvUser.Rows(i).FindControl("cbSelect"), CheckBox)
                    Dim username As String = gvUser.DataKeys(i).Value
                    If cbSelect.Checked Then Membership.DeleteUser(username, True)
                End If
            Next i
            BindData()
            ResultMessageControl1.ShowSuccess("用户列表删除成功!")
        Catch ex As Exception
            ResultMessageControl1.ShowFail("用户列表删除失败!" & ex.Message)
        End Try

  
    End Sub

    Protected Sub btnUserUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUserUpdate.Click

 
        Try
            For i As Integer = 0 To gvUser.Rows.Count - 1
                If gvUser.Rows(i).RowType = DataControlRowType.DataRow Then

                    Dim ddlIsApproved As DropDownList = CType(gvUser.Rows(i).FindControl("ddlIsApproved"), DropDownList)

                    Dim UserName As String = gvUser.DataKeys(i).Value

                    Dim user As MembershipUser = Membership.FindUsersByName(UserName)(UserName)
                    user.IsApproved = CBool(ddlIsApproved.SelectedValue)
                    Membership.UpdateUser(user)

                End If
            Next i
            BindData()
            ResultMessageControl1.ShowSuccess("用户列表更新成功!")
        Catch ex As Exception
            ResultMessageControl1.ShowFail("用户列表更新失败!" & ex.Message)
        End Try


    End Sub

  
    Protected Sub gvUser_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvUser.RowDataBound

        If e.Row.RowType = DataControlRowType.DataRow Then

            Dim lbUserType As Label = CType(e.Row.Cells(4).FindControl("lbUserType"), Label)
            Dim UserName As String = gvUser.DataKeys(e.Row.RowIndex).Value
            If UserName = Resources.GlobalResources.SuperAdmin Then 'My.User.Name Then
                e.Row.Enabled = False
                'Dim cbSelect As CheckBox = CType(e.Row.Cells(0).FindControl("cbSelect"), CheckBox)
                'cbSelect.Enabled = False
            End If
            Dim roles() As String = AspNetSecurity.Roles.GetRolesForUser(UserName)
            If roles.Length > 0 Then
                If roles(0) = "Administrator" Then
                    lbUserType.Text = "管理员"
                Else
                    lbUserType.Text = "顾客"
                End If
            Else
                lbUserType.Text = "未设置"
            End If


        End If

    End Sub
End Class

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?