0
셀 (0)의 텍스트가 동일하고 행을 병합 할 경우 gridview의 셀을 병합하려고합니다. 문제는 내 병합 된 셀 내 HTML과 비주얼 베이직 코드를 검색 측면보다는 다른병합 된 gridview 행이 나란히 표시됩니다.
아래 하나 나란히 표시입니다
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnDataBound="GridView1_DataBound">
<Columns>
<asp:BoundField DataField="This" HeaderText="This" />
<asp:BoundField DataField="Is" HeaderText="Is" />
<asp:BoundField DataField="A" HeaderText="A" />
<asp:BoundField DataField="Test" HeaderText="Test" />
</Columns>
</asp:GridView>
</form>
</body>
</html>
VB 코드 당신이 필요로하는 것처럼 들리
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dt As DataTable = New DataTable()
dt.Columns.Add("this")
dt.Columns.Add("is")
dt.Columns.Add("a")
dt.Columns.Add("test")
Dim dr As DataRow = dt.NewRow()
dr("this") = "data1"
dr("is") = "data1"
dr("a") = "data1"
dr("test") = "data1"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("this") = "data1"
dr("is") = "data1"
dr("a") = "data1"
dr("test") = "data1"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("this") = "data1"
dr("is") = "data1"
dr("a") = "data1"
dr("test") = "data1"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("this") = "data2"
dr("is") = "data2"
dr("a") = "data2"
dr("test") = "data2"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("this") = "data2"
dr("is") = "data2"
dr("a") = "data2"
dr("test") = "data2"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("this") = "data3"
dr("is") = "data3"
dr("a") = "data3"
dr("test") = "data3"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("this") = "data4"
dr("is") = "data4"
dr("a") = "data4"
dr("test") = "data4"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("this") = "data4"
dr("is") = "data4"
dr("a") = "data4"
dr("test") = "data4"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("this") = "data4"
dr("is") = "data4"
dr("a") = "data4"
dr("test") = "data4"
dt.Rows.Add(dr)
GridView1.DataSource = dt
GridView1.DataBind()
End Sub
Protected Sub GridView1_DataBound() Handles GridView1.DataBound
For rowIndex As Integer = GridView1.Rows.Count - 2 To 0 Step -1
Dim row As GridViewRow = GridView1.Rows(rowIndex)
Dim previousRow As GridViewRow = GridView1.Rows(rowIndex + 1)
If row.Cells(0).Text = previousRow.Cells(0).Text Then
For cellIndex As Integer = 0 To row.Cells.Count - 1
If previousRow.Cells(cellIndex).RowSpan < 2 Then
row.Cells(cellIndex).RowSpan = 2
Else
row.Cells(cellIndex).RowSpan = previousRow.Cells(cellIndex).RowSpan + 1
End If
If cellIndex <> 1 AndAlso cellIndex <> 2 Then
previousRow.Cells(cellIndex).Controls.Clear()
previousRow.Cells(cellIndex).Controls.Clear()
End If
Next
'previousRow.Visible = False
End If
Next
End Sub
End Class