我有一個帶有三個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