Как отключить все элементы управления на странице ASP.NET?

Я знаю, что это старый пост, но webform именно так я решил эту проблему. В c#-language соответствии с заголовком webforms «Как отключить все элементы webforms управления на странице ASP.NET?» Для c# этого я использовал Reflection; он c#-language будет работать со всеми типами .cs-file элементов управления, у которых csharp есть свойство Enabled. Просто c-sharp вызовите DisableControls, передавая .cs-file родительский элемент управления asp.net-webforms (т.е. форму).

C#:

private void DisableControls(System.Web.UI.Control control)
{
    foreach (System.Web.UI.Control c in control.Controls) 
    {
        // Get the Enabled property by reflection.
        Type type = c.GetType();
        PropertyInfo prop = type.GetProperty("Enabled");

        // Set it to False to disable the control.
        if (prop != null) 
        {
            prop.SetValue(c, false, null);
        }

        // Recurse into child controls.
        if (c.Controls.Count > 0) 
        {
            this.DisableControls(c);
        }
    }
}

VB:

    Private Sub DisableControls(control As System.Web.UI.Control)

        For Each c As System.Web.UI.Control In control.Controls

            ' Get the Enabled property by reflection.
            Dim type As Type = c.GetType
            Dim prop As PropertyInfo = type.GetProperty("Enabled")

            ' Set it to False to disable the control.
            If Not prop Is Nothing Then
                prop.SetValue(c, False, Nothing)
            End If

            ' Recurse into child controls.
            If c.Controls.Count > 0 Then
                Me.DisableControls(c)
            End If

        Next

    End Sub

c#

webforms

asp.net-controls

2022-11-11T20:04:51+00:00
Вопросы с похожей тематикой, как у вопроса:

Как отключить все элементы управления на странице ASP.NET?