如何在ASP.NET中设置两个gridviews的行高相等?

时间:2015-04-21 04:55:50

标签: asp.net vb.net gridview

我有两个Gridview。两者都有自动生成的列。但是这两个网格视图具有相同的行数。我需要做的是设置这两个网格视图的行高相等。我尝试使用gridviews的RowDataBound事件,但它没有工作。

这是Gridviews应该如何显示的预览:

enter image description here

这是我尝试构建的rowdatabound事件,但它并没有真正起作用:

Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound   
    Dim gv1
    Dim gv2
    For i = 0 To e.Row.Cells.Count - 1
        e.Row.Cells(i).Width = Page.Request.Browser.ScreenPixelsWidth
        gv1 = GridView1.Rows(i).Height
        gv2 = GridView2.Rows(i).Height

        If gv2 > gv1 Then
            e.Row.Cells(i).Height = gv2
        End If
    Next
End Sub

Private Sub GridView2_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView2.RowDataBound
    Dim gv1
    Dim gv2
    For i = 0 To e.Row.Cells.Count - 1
        e.Row.Cells(i).Width = Page.Request.Browser.ScreenPixelsWidth
        gv1 = GridView1.Rows(i).Height
        gv2 = GridView2.Rows(i).Height

        If gv1 > gv2 Then
            e.Row.Cells(i).Height = gv1
        End If
    Next
End Sub

请指教。感谢。

2 个答案:

答案 0 :(得分:0)

您可能无法在服务器端执行此操作。您必须使用j查询:

$(document).ready(function () {
            SetHeight();
        });

function SetHeight() {

            $("#GridView2 > tbody > tr").each(function (i, tr) {
                if ($("#GridView2 > tbody > tr:nth-child(" + (i + 1) + ")").height() > $("#GridView1 > tbody > tr:nth-child(" + (i + 1) + ")").height()) {
                    $("#GridView1 > tbody > tr:nth-child(" + (i + 1) + ")").height($("#GridView2 > tbody > tr:nth-child(" + (i + 1) + ")").height());
                } else {                  
                    $("#GridView2 > tbody > tr:nth-child(" + (i + 1) + ")").height($("#GridView1 > tbody > tr:nth-child(" + (i + 1) + ")").height());
                }

            });
        }

答案 1 :(得分:0)

作为替代方案,由于行似乎始终具有1:1的对应关系,如果您可以访问生成2个网格的sql语句,则可以重新编写sql以返回一个表,将gridview格式化为外观,就像图中的2个网格一样。

这样你就不必担心行高了。

想想看,您可以将2个数据源操作为新的DataTable,然后然后填充一个gridview。