только что нашел эту функцию из сообщения в блоге Стила Прайса, и она отлично работала. Я пытался сослаться на usercontrol внутри страницы, на которой была главная страница, ничего, что я пытался сработать, кроме этого. Поместите это в один из ваших основных классов. Прочитайте сообщение Стила в блоге для более подробной информации.
Если вы поместите это в класс, вам нужно получить контрольную ссылку, например:
Dim imgStep2PreviewIcon As Image = Eyespike.Utilities.FindControl(Of Control)(Page, "imgStep1PreviewIcon")
imgStep2PreviewIcon.Visible = False
Код VB.NET
Public Shadows Function FindControl(ByVal id As String) As Control
Return FindControl(Of Control)(Page, id)
End Function
Public Shared Shadows Function FindControl(Of T As Control)(ByVal startingControl As Control, ByVal id As String) As T
Dim found As Control = startingControl
If (String.IsNullOrEmpty(id) OrElse (found Is Nothing)) Then Return CType(Nothing, T)
If String.Compare(id, found.ID) = 0 Then Return found
For Each ctl As Control In startingControl.Controls
found = FindControl(Of Control)(ctl, id)
If (found IsNot Nothing) Then Return found
Next
Return CType(Nothing, T)
End Function
C # (не проверено, сгенерировано с использованием converter.telerik.com )
public new Control FindControl(string id)
{
return FindControl<Control>(Page, id);
}
public static new T FindControl<T>(Control startingControl, string id) where T : Control
{
Control found = startingControl;
if ((string.IsNullOrEmpty(id) || (found == null))) return (T)null;
if (string.Compare(id, found.ID) == 0) return found;
foreach (Control ctl in startingControl.Controls) {
found = FindControl<Control>(ctl, id);
if ((found != null)) return found;
}
return (T)null;
}