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

Swift 3: float или double value для строки, содержащей плавающую точку с запятой

extension String {
    var floatValue: Float {
        let nf = NumberFormatter()
        nf.decimalSeparator = "."
        if let result = nf.number(from: self) {
            return result.floatValue
        } else {
            nf.decimalSeparator = ","
            if let result = nf.number(from: self) {
                return result.floatValue
            }
        }
        return 0
    }

    var doubleValue:Double {
        let nf = NumberFormatter()
        nf.decimalSeparator = "."
        if let result = nf.number(from: self) {
            return result.doubleValue
        } else {
            nf.decimalSeparator = ","
            if let result = nf.number(from: self) {
                return result.doubleValue
            }
        }
        return 0
    }
}

Пример:

"5,456".floatValue //5.456
"5.456".floatValue //5.456
"5,456".doubleValue //5.456
"5.456".doubleValue //5.456

"5,456".doubleValue.rounded() //5
"5,6".doubleValue.rounded() //6
20
задан Jim G. 4 February 2013 в 22:15
поделиться

5 ответов

Каждое управление имеет дочерние элементы управления, таким образом, необходимо было бы использовать рекурсию для достижения их всех:

protected void DisableControls(Control parent, bool State) {
    foreach(Control c in parent.Controls) {
        if (c is DropDownList) {
            ((DropDownList)(c)).Enabled = State;
        }

        DisableControls(c, State);
    }
}

Затем назовите его как так:

protected void Event_Name(...) {
    DisableControls(Page,false); // use whatever top-most control has all the dropdowns or just the page control
} // divs, tables etc. can be called through adding runat="server" property
38
ответ дан 29 November 2019 в 06:09
поделиться

Было бы самым легким при помещении всех средств управления, Вы хотите отключить в панели и затем просто позволить/запретить панель.

19
ответ дан 29 November 2019 в 06:09
поделиться

Необходимо сделать это рекурсивное, я подразумеваю, что необходимо отключить дочерние элементы управления средств управления к:

protected void Page_Load(object sender, EventArgs e)
{
  DisableChilds(this.Page);
}

private void DisableChilds(Control ctrl)
{
   foreach (Control c in ctrl.Controls)
   {
      DisableChilds(c);
      if (c is DropDownList)
      {
           ((DropDownList)(c)).Enabled = false;
      }
    }
}
1
ответ дан 29 November 2019 в 06:09
поделиться

Вот версия VB.NET, которая также берет дополнительный параметр, таким образом, она может использоваться для включения средств управления также.

Частный Sub SetControls (ByVal parentControl Как Управление, Дополнительные ByVal включают Как булевская переменная = Ложь),

    For Each c As Control In parentControl.Controls
        If TypeOf (c) Is CheckBox Then
            CType(c, CheckBox).Enabled = enable
        ElseIf TypeOf (c) Is RadioButtonList Then
            CType(c, RadioButtonList).Enabled = enable
        End If
        SetControls(c)
    Next

End Sub
1
ответ дан 29 November 2019 в 06:09
поделиться

Если Вы действительно хотите отключить все средства управления на странице, то самый легкий способ сделать это должно установить свойство Disabled формы на истинный.

ASPX:

<body>
    <form id="form1" runat="server">
      ...
    </form>
</body>

Код - позади:

protected void Page_Load(object sender, EventArgs e)
{
    form1.Disabled = true;
}

Но конечно, это также отключит Ваш флажок, таким образом, Вы не сможете нажать флажок, чтобы повторно включить средства управления.

0
ответ дан 29 November 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: