如何在gridview中合并标头以提供子标头 [英] How do I merge headers in gridview to give sub headers
本文介绍了如何在gridview中合并标头以提供子标头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在重建一个来自asp的网站并将其转换为asp.net,原因很明显。我目前处于两难境地,并且不知道如何合并标头以在neath下提供一个大的主标题和一堆子标题,但仍然与其他标题位于同一行。我已经检查但没有找到一种方法来解决我的具体情况:(
这是我的代码背后
Hi, I am currently rebuilding a site from asp and converting it to asp.net for the obvious reasons. I am currently in a dilemma and don't know how to merge headers to give one big main header and a bunch of sub headers under neath but still in the same row as the other headers. I have checked but haven't found a way to do it specific to my situation :(
Here is my code behind
<pre> Private Sub LoadVehiclesTable()
LoadFacilitiesArray()
Dim sSQL As String = "SELECT VehicleSerialNo, VehicleID, FleetNo, RegistrationMark, VehicleType, ChassisMakeType, BodyMakeType, FirstRegistered, Seats, MobileTelNo, Base, " & _
"(SELECT DateValue FROM VehicleData WHERE VehicleDataTitleSerialNo = 2 AND VehicleSerialNo = V.VehicleSerialNo) AS RegoDue " & _
"FROM Vehicles V " & _
"WHERE (VehicleType <> 'SUB') And DateSold IS Null " & _
"ORDER BY " & sOrderBy
cnPHCS = New SqlConnection(DBCONN_STR)
cnPHCS.Open()
Dim drVehicle As SqlDataReader = New SqlCommand(sSQL, cnPHCS).ExecuteReader
Dim dtData As Data.DataTable, drRow As Data.DataRow
Dim iIndex As Integer, bFound As Boolean = False
dtData = New Data.DataTable
dtData = MakeVehiclesTable()
Do While drVehicle.Read
drRow = dtData.NewRow
drRow("FleetNo") = drVehicle("FleetNo")
drRow("Rego") = drVehicle("RegistrationMark")
drRow("Type") = drVehicle("VehicleType")
If Not IsDBNull(drVehicle("FirstRegistered")) Then drRow("Year") = Year(drVehicle("FirstRegistered"))
drRow("Chassis") = drVehicle("ChassisMakeType")
drRow("Body") = drVehicle("BodyMakeType")
drRow("Seats") = drVehicle("Seats")
If Not IsDBNull(drVehicle("RegoDue")) Then drRow("RegoDue") = FormatDate(drVehicle("RegoDue"), sDateFormat)
drRow("Base") = drVehicle("Base")
For iIndex = 0 To arrFacilities.Length - 1
If arrFacilities(iIndex).VehicleID = drVehicle("VehicleID") Then
drRow("AC") = IIf(arrFacilities(iIndex).AC, "X", "")
drRow("SB") = IIf(arrFacilities(iIndex).Belts, "X", "")
drRow("3-2") = IIf(arrFacilities(iIndex).Seat3for2, "X", "")
drRow("LB") = IIf(arrFacilities(iIndex).Bins, "X", "")
drRow("CD") = IIf(arrFacilities(iIndex).CD, "X", "")
drRow("VCR") = IIf(arrFacilities(iIndex).VCR, "X", "")
drRow("DVD") = IIf(arrFacilities(iIndex).DVD, "X", "")
drRow("RR") = IIf(arrFacilities(iIndex).RestRoom, "X", "")
drRow("KD") = IIf(arrFacilities(iIndex).Kneel, "X", "")
drRow("U") = IIf(arrFacilities(iIndex).Urn, "X", "")
Exit For
End If
Next
dtData.Rows.Add(drRow)
Loop
gvVehicle.DataSource = dtData
gvVehicle.DataBind()
drVehicle.Close() : drVehicle = Nothing
cnPHCS.Close() : cnPHCS = Nothing
End Sub</pre>
<pre lang="vb">Protected Sub LoadFacilitiesArray()
Dim drFacilities As SqlDataReader, sSQL As String, sLastVehicleID As String = ""
Dim iIndex As Integer = 0
cnPHCS = New SqlConnection(DBCONN_STR)
cnPHCS.Open()
sSQL = "SELECT VF.VehicleID, Facility " & _
"FROM VehicleFacilities VF INNER JOIN Vehicles V ON VF.VehicleID = V.VehicleID " & _
"WHERE (VehicleType <> 'SUB') And DateSold IS Null " & _
"ORDER BY VehicleID, Facility "
drFacilities = New SqlCommand(sSQL, cnPHCS).ExecuteReader
Do While drFacilities.Read
If sLastVehicleID <> drFacilities("VehicleID") Then
ReDim Preserve arrFacilities(iIndex)
arrFacilities(iIndex) = New VehicleFacility
arrFacilities(iIndex).VehicleID = drFacilities("VehicleID")
iIndex += 1
sLastVehicleID = drFacilities("VehicleID")
End If
With arrFacilities(iIndex - 1)
Select Case UCase(drFacilities("Facility"))
Case "AIR CONDITIONING" : .AC = True
Case "SEATBELTS" : .Belts = True
Case "3-FOR-2 SEATING" : .Seat3for2 = True
Case "LUGGAGE BINS" : .Bins = True
Case "TV/DVD" : .DVD = True
Case "KNEELING DEVICE" : .Kneel = True
Case "REST ROOM" : .RestRoom = True
Case "HOT WATER URN" : .Urn = True
Case "CD PLAYER" : .CD = True
Case Else
End Select
End With
Loop
End Sub</pre>
这是我的数组,用于获取所有子类别的数据,此时它们只是显示在彼此旁边数据
这里是它在asp中的样子以及我希望它在新的asp.net/vb.net中的样子
< img src =http://www.anony .ws / i / 2014/04/29 / P9icx.th.pngborder =0/>
推荐答案
试试
通过在ASP.NET中添加多个标题(标题行)合并(合并)GridView标题列(单元格) [ ^ ]
在ASP.NET中合并GridView列标题 [ ^ ]
如何创建多个行标题并将其合并为GridView中的其他列 [ ^ ]
Try
Merge ( Merging ) GridView Header Columns ( Cells ) by adding Multiple Headers ( Header Row ) in ASP.NET[^]
GridView column header merging in ASP.NET[^]
How to create multiple row header and merge it with other columns in GridView [^]
这篇关于如何在gridview中合并标头以提供子标头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文