2015-08-19 60 views
0

我想隐藏基于值的面板,使用服务器端代码。隐藏现有面板服务器端

  • 的形式从一个对象馈送数据源
  • 面板所在的形式
  • DataSource对象触发CustomerDataSource_Selected子

Web form Code

服务器端代码并​​执行

内部
Public Sub CustomerDataSource_Selected(ByVal source As Object, ByVal e As ObjectDataSourceStatusEventArgs) 
    Dim DisplayPanel As Boolean 
    DisplayPanel = False 
    If e.ReturnValue IsNot Nothing Then 
     If e.ReturnValue(0).x1 < e.ReturnValue(0).x2 Then 
      DisplayPanel = True 
     End If 
    End If 

    Dim FPanel As Panel = CType(FormView.FindControl("FuturePanel"), Panel) 
    FPanel.Visible = DisplayPanel 'here is the problem... 
End Sub 

我得到下面的异常,因为子“CustomerDataSource_Selected”由ObjectDataSource控件,它在上面的代码中没有访问形式的控制集合调用:不设置到对象的实例

对象引用。

如何隐藏面板使用当前的子,它需要访问控制集合?

请记住,该子是从ObjectDataSource?

这可能吗?

回答

1

貌似

Dim FPanel As Panel = CType(FormView.FindControl("FuturePanel"), Panel) 

没有得到控制。 (FPanel == NULL)

尝试......

Dim FPanel As Panel = CType(FormView1.Row.Cells[0].FindControl("FuturePanel"), Panel)