我在webform项目中有两个 gridviews 。 第一个是固定大小的网格,使用 javascript,我设法设置了一个网格引用,然后输出到两个文本框。 这些文本框随后更新第二个网格,其中包含与第一个网格的单击单元格中的数字相关的记录:
第一个gridview是彩色的,第二个gridview是分隔的文本 below 。 在示例中,可以看到选定的单元格引用是D 和 3a,第二个网格 below 显示 6个学生的数字。 但是,在我单击网格之后,布局会被弄乱,这一点不止一次:
正如你可以看到渲染头消失,然后这会导致布局和后续的网格引用定位。
在第一个gridview的数据绑定事件中,下面的vbcode生成了在gridview上的附加标头,它消失了:
If gvProgressGrid IsNot Nothing Then
Dim row As New GridViewRow(0, -1, DataControlRowType.Header, DataControlRowState.Normal)
Dim left As TableCell = New TableHeaderCell()
left.ColumnSpan = 2
row.Cells.Add(left)
left.BorderStyle = BorderStyle.None
Dim grades As TableCell = New TableHeaderCell()
grades.ColumnSpan = 10
grades.Text ="Grades"
row.Cells.Add(grades)
Dim cohort As TableCell = New TableHeaderCell()
cohort.ColumnSpan = 1
cohort.Text ="Cohort"
cohort.RowSpan = 2
cohort.BackColor = Drawing.Color.FromArgb(242, 242, 242)
row.Cells.Add(cohort)
Dim expected As TableCell = New TableHeaderCell()
expected.ColumnSpan = 2
Select Case strYear
Case"11"
expected.Text ="Students achieving expected progress (3 or more levels)"
Case"10"
expected.Text ="Students achieving expected progress (2 or more levels)"
Case"9"
expected.Text ="Students achieving expected progress (1 or more levels)"
End Select
expected.BackColor = Drawing.Color.FromArgb(216, 216, 216)
expected.Width = 250
row.Cells.Add(expected)
Dim 上面 As TableCell = New TableHeaderCell()
上面.ColumnSpan = 2
Select Case strYear
Case"11"
上面.Text ="Students achieving 上面 expected progress (4 or more levels)"
Case"10"
上面.Text ="Students achieving 上面 expected progress (3 or more levels)"
Case"9"
上面.Text ="Students achieving 上面 expected progress (2 or more levels)"
End Select
上面.BackColor = Drawing.Color.FromArgb(242, 242, 242)
上面.Width = 250
row.Cells.Add(上面)
Dim t As Table = TryCast(gvProgressGrid.Controls(0), Table)
If t IsNot Nothing Then
t.Rows.AddAt(0, row)
End If
End If
在我的javascript ( 。获取第一个gridview的网格引用的脚本单击) 中使用下面的代码在第二个文本框中自动触发文本/焦点的更改:
document.getElementById("<%=tbKS2.ClientID%>").value = strKS2;
__doPostBack(document.getElementById("<%=tbKS2.ClientID%>").name, '')
只有第二个gridview在单击第一个网格时才需要更新,看起来像整个第一个gridview更新。
如何才能获得 上面 文本框 postback 被触发的第二个 gridview,它的余的元素在页面上保持显示。
谢谢。