一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net 簡單實現禁用或啟用頁面中的某一類型的控件

asp.net 簡單實現禁用或啟用頁面中的某一類型的控件

2019-06-21 11:49腳本之家 ASP.NET教程

最近在一個winform項目中碰到的一個功能,勾選一個checkbox后窗體中的其他控件不可用。由此想到asp.net項目中有時候也要用到這種功能。

比如,我們在提交一個表單的時候,可能由于網絡或服務器的原因,處理很慢,而用戶在處理結果出來之前反復點擊按鈕提交。這樣很容易造成不必要的麻煩甚至是錯誤。說了這么多,其實就是要實現一個禁用某些控件的一種功能。好了,下面我就介紹自己簡單實現的這個小功能,貼代碼: 
復制代碼代碼如下:

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 


在aspx頁面中的調用如下: 
復制代碼代碼如下:

protected void Page_Load(object sender, EventArgs e) 

if (!IsPostBack) 

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


需要注意的是,我這里的實現只是針對幾種常用控件,您可以按照自己項目的需要任意擴展。 
測試打包下載

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本国产在线视频 | 精品国产免费观看一区高清 | 日韩黄色录像 | 臀精插宫NP文| 999久久免费高清热精品 | 欧美成人日韩 | 91免费永久在线地址 | 高h全肉动漫在线观看免费 高h辣h双处全是肉军婚 | 国产成人福利免费观看 | 女王脚奴vk | 亚洲国产成人久久精品hezyo | 妇乱子伦激情 | 国产欧美日韩精品高清二区综合区 | 99久久99久久久精品齐齐鬼色 | 国产另类视频 | 亚洲国产精品久久久久久 | 国产xxx在线 | 婷婷色天使在线视频观看 | 美女扒开屁股让我桶免费 | 激情婷婷成人亚洲综合 | 无码毛片内射白浆视频 | 美女脱一净二净不带胸罩 | 亚洲小视频| 国产精品亚洲专区一区 | 亚洲国产天堂在线观看 | 逼逼爱| 校园纯肉H教室第一次 | 美女女女女女女bbbbbb毛片 | 日韩在线观看网站 | 98在线视频噜噜噜国产 | 欧美日韩国产一区二区三区伦 | 思敏1一5集国语版免费观看 | 日产乱码卡一卡2卡三卡四福利 | 国产一区二区免费福利片 | 精品一区二区三区高清免费不卡 | 十大免费批日的软件 | 天莱男模gary| 耽美调教高h | 男人影院在线观看 | sao虎影院桃红视频在线观看 | 国产精品久久久久jk制服 |