我有一个带有三个Web控件的aspx页面:一个控制List Users页面,一个控制Edit Users页面,一个控制Add User页面。我发现了一种访问这些元素的方法,但似乎是有限的。这是我做了什么:如何从子ascx页面启用/禁用父aspx页面的web元素?
Protected Sub editUser(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs)
'set selected user from gridview.
Dim index As Integer = e.NewEditIndex
Dim userId As Integer = gvListUsers.DataKeys(index).Value
Session.Item("SelectedUserId") = userId
'show edit page, hide list and add page.
With Page.Form.Controls(1)
.Controls(getControlId("loadAddUser")).Visible = False
.Controls(getControlId("loadEditUser")).Visible = True
.Controls(getControlId("loadListUser")).Visible = False
End With
End Sub
的getControlId功能如下:
Public Function getControlId(ByVal control As String) As Integer
Dim enumer As System.Collections.IEnumerator = Page.Form.Controls.Item(1).Controls.GetEnumerator
Dim i As Integer
For i = 0 To (Page.Form.Controls.Item(1).Controls.Count - 1)
If Page.Form.Controls(1).Controls.Item(i).ID = control Then
Return i
End If
Next
Return Nothing
End Function
这在大多数情况下。但是,我无法访问这些Web控件的“已启用”属性。为什么会这样,我该如何访问该属性?
谢谢:)
创建自己的getControlId的,你可以使用可用直接在页面对象的一个方法: Page.FindControl(“loadAddUser” ) – awe 2009-07-20 13:15:42
非常感谢这个方法! – Chris 2009-07-20 13:31:11