GridView页面更改时用于修改服务器控件的事件?

时间:2015-03-09 11:03:43

标签: asp.net vb.net gridview

我正在Page_PreRender上实现过滤器,检查哪些行符合我设置的条件。

  Protected Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender
    If Session("Hotel") <> "Todos" Then
        CType(GridView1.HeaderRow.Cells(1).FindControl("DropDownList2"), DropDownList).SelectedValue = Session("Hotel")
    End If
    If Session("Departamento") <> "Todos" Then
        CType(GridView1.HeaderRow.Cells(3).FindControl("DropDownList1"), DropDownList).SelectedValue = Session("Departamento")
    End If
    If Session("Estado") <> "Todos" And Session("Estado") <> "" Then
        CType(GridView1.HeaderRow.Cells(7).FindControl("DropDownList3"), DropDownList).SelectedValue = Session("Estado")
    End If
       ApplyFilters()
  End Sub

过滤器保存在会话变量中(在DropDownList的{​​{1}}导致回发),然后我得到(如上所示)并设置他们所对应的任何字段,无论如何他们在回发之前。完成此操作后,将通过调用SelectedIndexChanged重新应用过滤器。

如果您想知道过滤器的工作原理:

ApplyFilters()

在切换到另一个 For Each Row As GridViewRow In GridView1.Rows If CType(Row.Cells(3).FindControl("Label3"), Label).Text <> Filtro Then Row.Visible = False End If Next 页面之前,所有内容似乎都运行正常,过滤器未重新应用,并且所有对应的GridView s'值都设置为默认值。刷新页面后,一切都恢复正常。似乎更改页面不会触发DropDownList。 在这种情况下,我应该在哪里实施过滤器?

1 个答案:

答案 0 :(得分:0)

切换到GridView赢取的Page_PreRender中的其他页面,以便您想要编辑GridView的内容以进行过滤使用{{1} }。

GridView_PreRender