Posted: 12/3/2009
Hi All, I am a newbie to ASP.NET and in need of you help, basically, I have a gridview that binded from two functions (type datatable). One function is parent which I past one parameter ("DeptID") while loading this table I also called the child funtion which get the parameter from the parent function ("FolderID"). The grid bind fine, but my tast is to place a down arrow at the first child row under the parent and an a up arrow at the last child row and the process repeated for each parent that have one or more rows.This is where I have been banging head head trying to get this work but has no success.Parent row data1 Down arrow Child row data - first row up/down arrow Child row data up/down arrow Child row data up/down arrow Child row data up arrow Child row data - last rowParent row data2 Down arrow Child row data - first row up/down arrow Child row data up/down arrow Child row data up arrow Child row data - last rowParent row data3 Down arrow Child row data - first row up/down arrow Child row data up arrow Child row data - last row
Parent row data4 Child row data - first rowAny assistance is greatly apprecaited. please provide codes example. ThanksDocHoliday. Here are my codes behind VB: Protected Sub DisplayParentGV()Dim Conn As New SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("mConn").ToString)Dim SQLCmd As New SqlCommand("Get_Links_Name", conn)Dim SQLDBDataReader As SqlClient.SqlDataReaderDim dt As New DataTable()TryIf conn.State = ConnectionState.Closed Thenconn.Open()End IfSQLCmd.CommandType = CommandType.StoredProcedureSQLCmd.Connection = connSQLCmd.Parameters.Add("@DeptID", SqlDbType.Int, 60).Value = Convert.ToInt32(Session("Dept_id"))dt.Columns.Add(New DataColumn("FolderID", GetType(String)))dt.Columns.Add(New DataColumn("FolderFileID", GetType(String)))dt.Columns.Add(New DataColumn("ImageType", GetType(String)))dt.Columns.Add(New DataColumn("Page", GetType(String)))dt.Columns.Add(New DataColumn("FolderOrder", GetType(String)))dt.Columns.Add(New DataColumn("Link_FileOrder", GetType(String)))SQLDBDataReader = SQLCmd.ExecuteReader()While SQLDBDataReader.Read()Dim dr As DataRow = dt.NewRow()Dim Pid As Integer = Convert.ToInt32(SQLDBDataReader("FolderID"))dr("FolderID") = (SQLDBDataReader("FolderID"))dr("FolderFileID") = Nothingdr("ImageType") = Nothingdr("Page") = (SQLDBDataReader("Foldername"))dr("FolderOrder") = (SQLDBDataReader("FolderOrder"))dr("Link_FileOrder") = NothingSession("ParentBottonRow") = dt.Rows.Countdt.Rows.Add(dr)Dim ChildTable As DataTable = DisplayChildGV(Pid.ToString())For Each dro As DataRow In ChildTable.RowsDim dr2 As DataRow = dt.NewRow()dr2("FolderFileID") = dro("FolderFileID")dr2("ImageType") = dro("ImageType")dr2("Page") = dro("Link_FileName")dr2("Link_FileOrder") = dro("Link_FileOrder")dt.Rows.Add(dr2)NextEnd WhileSQLDBDataReader.Close()Catch ex As ExceptionThrowFinallySQLCmd.Dispose()gvParent.DataSource = dtgvParent.DataBind()conn.Close()End TryEnd SubProtected Function DisplayChildGV(ByVal FolderID As String) As DataTableDim Con As New SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("mConn").ToString)Dim dt As New DataTable()dt.Columns.Add(New DataColumn("FolderFileID", GetType(String)))dt.Columns.Add(New DataColumn("ImageType", GetType(String)))dt.Columns.Add(New DataColumn("Link_FileName", GetType(String)))dt.Columns.Add(New DataColumn("Link_FileOrder", GetType(String)))Dim SQLCmd2 As New SqlCommand("Get_Links_Folder_Name", Con)TryIf Con.State = ConnectionState.Closed ThenCon.Open()End IfSQLCmd2.CommandType = CommandType.StoredProcedureSQLCmd2.Connection = ConSQLCmd2.Parameters.Add("@FolderID", SqlDbType.Int, 60).Value = Convert.ToInt32(FolderID)Dim SQLDBDataReader2 As SqlClient.SqlDataReader = SQLCmd2.ExecuteReader()'SQLDBDataReader2 = SQLCmd2.ExecuteReader()While SQLDBDataReader2.Read()Dim dr2 As DataRow = dt.NewRow()dr2("FolderFileID") = SQLDBDataReader2("FolderFileID")If Not IsDBNull(SQLDBDataReader2("LinkURL")) Thendr2("ImageType") = ResolveUrl("~/Images/icon-ie.gif")ElseSelect Case Mid(SQLDBDataReader2("Link_FileName"), InStrRev(SQLDBDataReader2("Link_FileName"), "."))Case ".xls"dr2("ImageType") = ResolveUrl("~/Images/icon-xls.gif")Case ".doc"dr2("ImageType") = ResolveUrl("~/Images/icon-doc.gif")Case ".pdf"dr2("ImageType") = ResolveUrl("~/Images/icon-pdf.gif")Case ".ppt"dr2("ImageType") = ResolveUrl("~/Images/icon-ppt.gif")Case ".txt"dr2("ImageType") = ResolveUrl("~/Images/icon-text.gif")End SelectEnd Ifdr2("Link_FileName") = SQLDBDataReader2("Link_FileName")dr2("Link_FileName") = SQLDBDataReader2("Link_FileName")dr2("Link_FileOrder") = SQLDBDataReader2("Link_FileOrder")Session("ChildBottonRowBolean") = SQLDBDataReader2.Read().ToStringdt.Rows.Add(dr2)End WhileReturn dtCatch ex As ExceptionThrowFinallySQLCmd2.Dispose()'gvParent.DataSource = dt'gvParent.DataBind()Con.Close()End TryEnd Function