突出显示 gridview 中的选定行,仅此而已 vb asp.net
highlight selected row in gridview and nothing else vb asp.net
我希望能够 select Gridview 中突出显示的一行,仅此而已。我可以用这段代码做到这一点,但是当我尝试点击另一行时(比如用户 select 编辑了错误的行),它会崩溃并给我这个错误 "Microsoft JScript runtime error: '__doPostBack' is undefined"。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
GridView.DataBind()
End If
End Sub
Protected Sub OnRowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Attributes("onclick") = Page.ClientScript.GetPostBackClientHyperlink(GridView, "Select$" & e.Row.RowIndex)
e.Row.ToolTip = "Click to select this row."
End If
End Sub
Protected Sub OnSelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GridView.SelectedIndexChanged
For Each row As GridViewRow In GridView.Rows
If row.RowIndex = GridView.SelectedIndex Then
row.BackColor = Drawing.Color.LightBlue
row.ToolTip = String.Empty
Else
row.BackColor = Drawing.Color.White
row.ToolTip = "Click to select this row."
End If
Next
End Sub
这可能是由于 RowDataBound
没有在回发时再次调用。如果您在执行初始 select 之前和之后通过浏览器开发人员工具检查 Gridview,我希望最初 onclick
事件已正确设置并在第一个 select 之后消失。
数据绑定与缓存相关联,可能没有必要在每次回发时都进行绑定,尤其是当您只 select 一行时。
您可以显式调用 Databind()(不是我的第一选择)或更好,将 onclick 生成移动到 RowCreated 事件, 在每次回发时调用该事件,或者移动到PreRender 事件,您可以在其中通过循环遍历行来生成 onclick。
我希望能够 select Gridview 中突出显示的一行,仅此而已。我可以用这段代码做到这一点,但是当我尝试点击另一行时(比如用户 select 编辑了错误的行),它会崩溃并给我这个错误 "Microsoft JScript runtime error: '__doPostBack' is undefined"。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
GridView.DataBind()
End If
End Sub
Protected Sub OnRowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Attributes("onclick") = Page.ClientScript.GetPostBackClientHyperlink(GridView, "Select$" & e.Row.RowIndex)
e.Row.ToolTip = "Click to select this row."
End If
End Sub
Protected Sub OnSelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GridView.SelectedIndexChanged
For Each row As GridViewRow In GridView.Rows
If row.RowIndex = GridView.SelectedIndex Then
row.BackColor = Drawing.Color.LightBlue
row.ToolTip = String.Empty
Else
row.BackColor = Drawing.Color.White
row.ToolTip = "Click to select this row."
End If
Next
End Sub
这可能是由于 RowDataBound
没有在回发时再次调用。如果您在执行初始 select 之前和之后通过浏览器开发人员工具检查 Gridview,我希望最初 onclick
事件已正确设置并在第一个 select 之后消失。
数据绑定与缓存相关联,可能没有必要在每次回发时都进行绑定,尤其是当您只 select 一行时。
您可以显式调用 Databind()(不是我的第一选择)或更好,将 onclick 生成移动到 RowCreated 事件, 在每次回发时调用该事件,或者移动到PreRender 事件,您可以在其中通过循环遍历行来生成 onclick。