私は、List Usersページを制御する1つ、Edit Usersページを制御する1つ、およびAdd Userページを制御する1つの3つのWebコントロールを持つaspxページを持っています。私はこれらの要素にアクセスする方法を発見しましたが、それは限られているようです。ここに私がやっていることです:親aspxページのWeb要素を子ascxページから有効/無効にするにはどうすればいいですか?
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コントロールの「有効」属性にアクセスすることはできません。これはなぜですか、その属性にどのようにアクセスできますか?
感謝:)
、ページ・オブジェクト上で直接利用できる方法を使用することができます。 Page.FindControl(「loadAddUser」 ) – awe
このメソッドについて頭のおかげで! – Chris