Wrox Home  
Search P2P Archive for: Go

  Return to Index  

aspx_professional thread: Dynamically Generating DataGrid Row and Cols


Message #1 by "Robert Sindall" <rsindall@z...> on Fri, 25 Oct 2002 11:15:01 +0100
Hi

I've manage to dynamically generate row and cols from the database

But I now need to add some EditCommandColumns to the end of the DataGrid.

How?

       Function BuildUserTable() As ICollection

            Dim [Roles] As New UsersDB()
            Dim RolesList As SqlDataReader = [Roles].GetAllRoles()
            Dim UserList As SqlDataReader = [Roles].GetUsers()

            Dim dt As New DataTable()
            Dim dr As DataRow
            Dim i As Integer
            Dim dv As New DataView(dt)

            dt.Columns.Add(New DataColumn("ID", GetType(Int32)))
            dt.Columns.Add(New DataColumn("Name", GetType(String)))

            While RolesList.Read

                dt.Columns.Add(New DataColumn(CStr(RolesList("RoleName")),
GetType(Boolean)))

            End While

            dt.Columns.Add(New DataColumn("Edit",
GetType(EditCommandColumn))) ' <-- this
            dt.Columns.Add(New DataColumn("Status", GetType(String)))
            dt.Columns.Add(New DataColumn("Delete", GetType(String)))

            Dim ColCount As Integer = dt.Columns.Count

            While UserList.Read

                dr = dt.NewRow()
                dr(0) = UserList("UserID")
                dr(1) = (UserList("LastName") & ", " &
UserList("FirstName"))

                For i = 2 To ColCount - 4

                    ' Create a string to persist the roles
                    Dim rolesArr() As String
                    rolesArr = [Roles].GetRoles(CInt(UserList("UserID")))
                    Dim role As String

                    For Each role In rolesArr

                        If dt.Columns(i).ColumnName = role Then dr(i) = True
Else dr(i) = False

                    Next role

                Next

                Dim EditButton As New
System.Web.UI.WebControls.EditCommandColumn()
                EditButton.ButtonType = ButtonColumnType.LinkButton
                EditButton.CancelText = "Cancel"
                EditButton.EditText = "Edit"
                EditButton.UpdateText = "Save"
                EditButton.Visible = True
                dr(ColCount - 3) = EditButton '<-- this
                dr(ColCount - 2) = "Active"
                dr(ColCount - 1) = "Delete"
                dt.Rows.Add(dr)

            End While

            dv.Item(1).BeginEdit()

            Return dv

        End Function


  Return to Index