zoukankan      html  css  js  c++  java
  • asp.net 简单实现禁用或启用页面中的某一类型的控件

     我们在提交一个表单的时候,可能由于网络或服务器的原因,处理很慢,而用户在处理结果出来之前反复点击按钮提交。这样很容易造成不必要的麻烦甚至是错误。说了这么多,其实就是要实现一个禁用某些控件的一种功能。好了,下面我就介绍自己简单实现的这个小功能。
    <div class="codetitle" style="border-left-color: rgb(0, 153, 204); border-left- 1px; border-left-style: solid; padding: 0px 3px; margin: 3px auto 0px;  640px; clear: both; font-size: 14px; border-top-color: rgb(0, 153, 204); border-top- 1px; border-top-style: solid; border-right-color: rgb(0, 153, 204); border-right- 1px; border-right-style: solid; line-height: 25.2000007629395px; font-family: Tahoma, Helvetica, Arial, 宋体, sans-serif; background: rgb(242, 246, 251);">代码如下:</div><div class="codebody" id="code97423" style="border: 1px solid rgb(0, 153, 204); padding: 0px 3px 0px 5px; margin: 0px auto 3px;  638px; clear: both; font-size: 14px; line-height: 25.2000007629395px; font-family: Tahoma, Helvetica, Arial, 宋体, sans-serif; background: rgb(221, 237, 251);">
    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Web; 
    using System.Web.UI; 
    using System.Web.UI.HtmlControls; 
    using System.Web.UI.WebControls; 
    namespace DotNet.Common.Util 
    { 
    /// <summary> 
    /// 控件枚举,我们在禁用或启用时,就是根据这个枚举来匹配合适的项 
    /// </summary> 
    public enum ControlNameEnum 
    { 
    Panel = 0, //容器 这个比较常用 
    TextBox = 1, 
    Button = 2, //这个也比较常用 比如 按钮提交后的禁用,返回结果后启用 
    CheckBox = 3, 
    ListControl = 4, 
    All = 100 //所有 
    } 
    public static class ControlHelper 
    { 
    #region 同时禁用或者启用页面的某些控件 
    /// <summary> 
    /// 设置是否启用控件 
    /// </summary> 
    /// <param name="control"></param> 
    /// <param name="controlName"></param> 
    /// <param name="isEnable"></param> 
    public static void SetControlsEnabled(Control control, ControlNameEnum controlName, bool isEnabled) 
    { 
    foreach (Control item in control.Controls) 
    { 
    /* 我们仅仅考虑几种常用的asp.net服务器控件和html控件 */ 
    //Panel 
    if (item is Panel && (controlName == ControlNameEnum.Panel || controlName == ControlNameEnum.All)) 
    { 
    ((Panel)item).Enabled = isEnabled; 
    } 
    //TextBox,HtmlTextBox 
    if (controlName == ControlNameEnum.TextBox || controlName == ControlNameEnum.All) 
    { 
    if (item is TextBox) 
    { 
    ((TextBox)(item)).Enabled = isEnabled; 
    } 
    else if (item is HtmlInputText) 
    { 
    ((HtmlInputText)item).Disabled = isEnabled; 
    } 
    else if (item is HtmlTextArea) 
    { 
    ((HtmlTextArea)(item)).Disabled = isEnabled; 
    } 
    } 
    //Buttons 
    if (item is Button && (controlName == ControlNameEnum.Button || controlName == ControlNameEnum.All)) 
    { 
    if (item is Button) 
    { 
    ((Button)(item)).Enabled = isEnabled; 
    } 
    else if (item is HtmlInputButton) 
    { 
    ((HtmlInputButton)(item)).Disabled = !isEnabled; 
    } 
    else if (item is ImageButton) 
    { 
    ((ImageButton)(item)).Enabled = isEnabled; 
    } 
    else if (item is LinkButton) 
    { 
    ((LinkButton)(item)).Enabled = isEnabled; 
    } 
    } 
    //CheckBox 
    if (controlName == ControlNameEnum.CheckBox || controlName == ControlNameEnum.All) 
    { 
    if (item is CheckBox) 
    { 
    ((CheckBox)(item)).Enabled = isEnabled; 
    } 
    else if (item is HtmlInputCheckBox) 
    { 
    ((HtmlInputCheckBox)(item)).Disabled = !isEnabled; 
    } 
    } 
    //List Controls 
    if (controlName == ControlNameEnum.ListControl || controlName == ControlNameEnum.All) 
    { 
    if (item is DropDownList) 
    { 
    ((DropDownList)(item)).Enabled = isEnabled; 
    } 
    else if (item is RadioButtonList) 
    { 
    ((RadioButtonList)(item)).Enabled = isEnabled; 
    } 
    else if (item is CheckBoxList) 
    { 
    ((CheckBoxList)(item)).Enabled = isEnabled; 
    } 
    else if (item is ListBox) 
    { 
    ((ListBox)(item)).Enabled = isEnabled; 
    } 
    else if (item is HtmlSelect) 
    { 
    ((HtmlSelect)(item)).Disabled = !isEnabled; 
    } 
    } 
    //如果项目还有子控件,递归调用该函数 
    if (item.Controls.Count > 0) 
    { 
    SetControlsEnabled(item, controlName, isEnabled); 
    } 
    } 
    } 
    #endregion 
    } 
    } </div>
    
    在aspx页面中的调用如下: 
    复制代码代码如下:

    protected void Page_Load(object sender, EventArgs e) 

    if (!IsPostBack) 

    ControlHelper.SetControlsEnabled(this.Page, ControlNameEnum.Panel, false); //Panel禁用 


  • 相关阅读:
    【转】深入分析事务的隔离级别
    gluoncv 用已经训练好的模型参数,检测物体
    gluoncv 目标检测,训练自己的数据集
    SMB linux&windows共享文件
    VOC 数据集
    yaml 配置文件
    SSD 单发多框检测
    目标检测数据集(皮卡丘)
    zip 函数
    输出预测边界框,NMS非极大值抑制
  • 原文地址:https://www.cnblogs.com/PearlRan/p/4833080.html
Copyright © 2011-2022 走看看