목록 사용자 페이지를 제어하는 페이지, 사용자 편집 페이지를 제어하는 페이지, 사용자 추가 페이지를 제어하는 페이지 등 세 가지 웹 컨트롤이있는 aspx 페이지가 있습니다. 이러한 요소에 액세스하는 방법을 발견했지만 제한적으로 보입니다. 여기에 내가 무엇을했는지 있습니다 :하위 ascx 페이지에서 상위 aspx 페이지의 웹 요소를 활성화/비활성화하는 방법은 무엇입니까?
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
이 대부분의 경우에 작동합니다. 그러나 이러한 웹 컨트롤의 "사용 가능"속성에 액세스 할 수 없습니다. 왜 그런가요? 그리고 그 속성에 어떻게 접근 할 수 있습니까?
감사합니다 :)
을, 당신은 페이지의 객체에서 직접 사용할 수있는 방법을 사용할 수 있습니다) – awe
이 방법에 대해 머리를 주셔서 감사합니다! – Chris