DataGrid Need Help

R

Roy

I am very, very new to ASP.NEt and have never done ASP.
I have been trying to get a datagrid to work for about 5 days with very
limited results.
When I use property builder, bind the control, set the paging and populate
it from the page_load event it works.
However, if I set it as unbound, then set the properties through code the
grid does not show. I check the dataset count and there are 43 rows.
My first question is "Can a datagrid properties be set by code and work"
Below is the essential code. If someone see what is wrong, please! PLEASE!
let me know.
TIA,
Roy

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

'Put user code to initialize the page here

daDeptList.Fill(ds.DeptList)

dgDeptList.DataBind()

scSelectLAst.Parameters("@lastname").Value = "s"

daPhoneLast.Fill(ds.LastName)

ConfigureGrid(dgName, 5)

dgName.DataSource = ds.LastName

dgName.DataBind()

End Sub

Private Sub ConfigureGrid(ByVal dg As DataGrid, ByVal iPageSize As Integer)

dg.AllowPaging = True

dg.PageSize = iPageSize

dg.PagerStyle.Mode = PagerMode.NextPrev

dg.PagerStyle.NextPageText = "Next"

dg.PagerStyle.PrevPageText = "Previous"

dg.AllowCustomPaging = False

dg.AutoGenerateColumns = False

End Sub
 
M

Marina

In this scenario, do you have all the columns configured on the datagrid
when you are setting all the other properties throught code? If so,
AutoGenerateColumns needs to be True.

Otherwise, I would say post the code for the grid from your .aspx.
 
R

Roy

Genius! That made it work.
Now, one more problem. When I hit the Next prompt, I see the progress bar
but the data on the grid does not change.
This is the code from the .aspx file

Dim dv As DataView

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

'Put user code to initialize the page here

daDeptList.Fill(ds.DeptList)

dgDeptList.DataBind()

End Sub

Private Sub ConfigureGrid(ByVal dg As DataGrid, ByVal iPageSize As Integer)

dg.AllowPaging = True

dg.PageSize = iPageSize

dg.PagerStyle.Mode = PagerMode.NextPrev

dg.PagerStyle.NextPageText = "Next"

dg.PagerStyle.PrevPageText = "Previous"

dg.AllowCustomPaging = False

dg.AutoGenerateColumns = True

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Dim i As Integer = Len(txtFirstName.Text) + Len(txtLastName.Text)

If i < 1 Then

Exit Sub

End If

If Len(txtFirstName.Text) > 0 Then

scSelectFirst.Parameters("@firstname").Value = txtFirstName.Text

daPhoneFirst.Fill(ds.FirstName)

dv = New DataView(ds.FirstName)

Else

scSelectLAst.Parameters("@lastname").Value = txtLastName.Text

daPhoneLast.Fill(ds.LastName)

dv = New DataView(ds.LastName)

End If

ConfigureGrid(dgName, 5)

SetData(dgName, dv)

End Sub

Private Sub SetData(ByVal dg As DataGrid, ByVal dv1 As DataView)

dg.DataSource = dv1

dg.DataBind()

End Sub

Private Sub btnDept_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnDept.Click

daDept.Fill(ds.Department)

End Sub

Private Sub dgDeptList_PageIndexChanged(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles
dgDeptList.PageIndexChanged

dgDeptList.CurrentPageIndex = e.NewPageIndex

dgDeptList.DataSource = ds.DeptList

dgDeptList.DataBind()

End Sub

Private Sub dgDeptList_ItemCreated(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs) Handles
dgDeptList.ItemCreated

Dim elemtype As ListItemType = e.Item.ItemType

If elemtype = ListItemType.Pager Then

Dim pager As TableCell = CType(e.Item.Controls(0), TableCell)

End If

End Sub

Private Sub dgName_PageIndexChanged(ByVal source As System.Object, ByVal e
As System.Web.UI.WebControls.DataGridPageChangedEventArgs)

dgName.CurrentPageIndex = e.NewPageIndex

dgName.DataSource = dv

dgName.DataBind()

End Sub

Private Sub dgName_ItemCreated(ByVal sender As System.Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs)

Dim elemtype As ListItemType = e.Item.ItemType

If elemtype = ListItemType.Pager Then

Dim pager As TableCell = CType(e.Item.Controls(0), TableCell)

End If

End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top