Asp.net自定義控件之加載層
本文旨在給大家開(kāi)發(fā)自定義控件(結(jié)合js)一個(gè)思路,一個(gè)簡(jiǎn)單的示例,可能在實(shí)際項(xiàng)目中并不會(huì)這樣做。
先來(lái)看看效果:
1.在靜態(tài)頁(yè)面里開(kāi)發(fā)好想要的效果
jQuery.extend({
openloading: function (options) {
var defaults = { msg: '數(shù)據(jù)提交中...', img: 'loading.gif' };
var opts = $.extend(defaults, options);
$("body").append("<div class='l_overlay' style='position:fixed;top:0;right:0;bottom:0;left:0;z-index:998;width:100%;height:100%;padding:0 20px 0 0;background-color:gray;display:none;'></div><div class='l_showbox' style='position:fixed;top:0;left:50%;z-index:1001;opacity:0;filter:alpha(opacity=0);margin-left:-80px;border:1px solid gray;font-size:12px;font-weight:bold;'><div class='loadingWord' style='width:122px;height:38px;line-height:38px;border:2px solid #D6E7F2;background:#fff;'><img style='margin:10px 8px 10px 8px;float:left;display:inline;' src='"+opts.img+"'>數(shù)據(jù)提交中...</div></div>");
var h = $(document).height();
$(".l_overlay").css({ "height": h, 'display': 'block', 'opacity': '0.4' });
$(".l_showbox").stop(true).animate({ 'margin-top': (h / 2 - 58) + 'px', 'opacity': '1' }, 200);
},
closeloading: function () {
$(".l_showbox").stop(true).animate({ 'margin-top': '250px', 'opacity': '0' }, 400);
$(".l_overlay").css({ 'display': 'none', 'opacity': '0' });
$(".l_overlay").remove();
$(".l_showbox").remove();
}
});
2.vs新建類(lèi)庫(kù),新建類(lèi)繼承于WebControl
添加屬性:
[Description("獲取和設(shè)置觸發(fā)器ID"), DefaultValue(""), Browsable(true), Category("雜項(xiàng)")]
public string TargetID { get; set; }
重寫(xiě)OnPreRender方法。方法中注冊(cè)js腳本,該腳本指示ID為T(mén)argetID的控件點(diǎn)擊時(shí)顯示加載層
protected override void OnPreRender(EventArgs e)
{
if (Page != null && !string.IsNullOrEmpty(TargetID))
{
TargetID = GetClientID(TargetID);
Page.ClientScript.RegisterClientScriptResource(typeof(Loading), "BoControl.Scripts.Jquery.js");
this.Page.ClientScript.RegisterStartupScript(typeof(string), "BoControl_" + this.ClientID, "$(\"#" + TargetID + "\").on(\"click\",function(){$.openloading({msg:\"" + Text + "\", img: \"" +Page.ClientScript.GetWebResourceUrl(this.GetType(), "BoControl.Images.loading.gif")+ "\"});});", true);
}
base.OnPreRender(e); }
OnPreRender方法中
Page.ClientScript.RegisterClientScriptResource(typeof(Loading), "BoControl.Scripts.Jquery.js");注冊(cè)JQuery
Page.ClientScript.GetWebResourceUrl(this.GetType(), "BoControl.Images.loading.gif");是獲取Web資源文件路徑,如果你不想把圖片文件嵌入dll請(qǐng)改為真實(shí)路徑(如:Images/Loading.gif),相反你需要像下面一樣指明圖片文件和JQuery文件,并且圖片屬性-生成操作為:嵌入的資源
[assembly: WebResource("BoControl.Images.loading.gif", "image/gif")]//這里你還需注冊(cè)JQuery
namespace BoControl
{
你還需要寫(xiě)Open方法和Close方法,方便后臺(tái)代碼中調(diào)用。
如:
/// <summary>
/// 打開(kāi)加載動(dòng)畫(huà)
/// UpdatePanel注冊(cè)
/// </summary>
/// <param name="panel">UpdatePanel對(duì)象</param>
public void Open(UpdatePanel panel)
{
if (Page != null)
{
ScriptManager.RegisterStartupScript(panel, panel.GetType(), "openloading", "$.openloading({msg:\"" + Text + "\", img: \"" + Page.ClientScript.GetWebResourceUrl(this.GetType(), "BoControl.Images.loading.gif"); + "\"});", true);
}
}
總的來(lái)說(shuō)自定義控件的開(kāi)發(fā)不算復(fù)雜,以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- asp.net自定義控件代碼學(xué)習(xí)筆記
- asp.net 自定義控件實(shí)現(xiàn)無(wú)刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖
- Asp.net 動(dòng)態(tài)加載用戶(hù)自定義控件,并轉(zhuǎn)換成HTML代碼
- asp.net DropDownList自定義控件,讓你的分類(lèi)更清晰
- asp.net中使用自定義控件的方式實(shí)現(xiàn)一個(gè)分頁(yè)控件的代碼
- asp.net自定義控件回發(fā)數(shù)據(jù)實(shí)現(xiàn)方案與代碼
- Asp.net清空控件值的方法(可自定義控件類(lèi)型)
- asp.net自定義控件中注冊(cè)Javascript問(wèn)題解決方案
- 淺談ASP.NET中最簡(jiǎn)單的自定義控件
- asp.net動(dòng)態(tài)加載自定義控件的方法
相關(guān)文章
.NET醫(yī)院公眾號(hào)系統(tǒng)線(xiàn)程CPU雙高問(wèn)題分析
這篇文章主要介紹了.NET醫(yī)院公眾號(hào)系統(tǒng) 線(xiàn)程CPU雙高分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
Entity?Framework使用DataBase?First模式實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查
本文詳細(xì)講解了Entity?Framework使用DataBase?First模式實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
ASP.NET在上傳文件時(shí)對(duì)文件類(lèi)型的高級(jí)判斷的代碼
在上傳文件過(guò)程中,可以通過(guò)修改擴(kuò)展名來(lái)逃過(guò)文件類(lèi)型的判斷并實(shí)現(xiàn)上傳,就需要可以驗(yàn)證究竟是什么文件。下面的代碼大家可以測(cè)試下。2009-12-12
ASP.NET中實(shí)現(xiàn)把Json數(shù)據(jù)轉(zhuǎn)換為ADO.NET DataSet對(duì)象
這篇文章主要介紹了ASP.NET中實(shí)現(xiàn)把Json數(shù)據(jù)轉(zhuǎn)換為ADO.NET DataSet對(duì)象,本文講解設(shè)計(jì)及實(shí)現(xiàn)方法,相關(guān)代碼托管到GITHUB,需要的朋友可以參考下2015-03-03
ASP.NET?MVC使用Knockout獲取數(shù)組元素索引的2種方法
這篇文章介紹了ASP.NET?MVC使用Knockout獲取數(shù)組元素索引的2種方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
.Net Core簡(jiǎn)單使用Mvc內(nèi)置的Ioc(續(xù))
怎樣直接獲取Ioc中的實(shí)例對(duì)象,而不是以構(gòu)造函數(shù)的方式進(jìn)行獲取呢?這篇文章繼續(xù)為大家介紹.Net Core簡(jiǎn)單使用Mvc內(nèi)置的Ioc2018-03-03
Asp.Net Oracle數(shù)據(jù)的通用操作類(lèi)
Asp.Net連接Oracle數(shù)據(jù)的通用操作類(lèi)并且利用它對(duì)數(shù)據(jù)庫(kù)查詢(xún)、匯總、更新等操作演示2009-12-12
ajaxToolkit:TextBoxWatermarkExtender演示與實(shí)現(xiàn)代碼
該控件的效果就是在TextBox控件上添加“水印”效果,也就是當(dāng)TextBox為空時(shí),顯示提示消息,一旦TextBox聚焦,樣式就消失,看起來(lái)還挺不錯(cuò)的嗎,感興趣的你可以了解下哦,希望本文對(duì)你有所幫助2013-01-01
Asp.net之TextBox只允許輸入數(shù)字的方法總結(jié)
Asp.net之TextBox只允許輸入數(shù)字的方法總結(jié),需要的朋友可以參考一下2013-02-02
asp.net 因?yàn)閿?shù)據(jù)庫(kù)正在使用的解決方法
因?yàn)閿?shù)據(jù)庫(kù)正在使用,所以未能獲得對(duì)數(shù)據(jù)庫(kù)的排它訪(fǎng)問(wèn)權(quán)?2009-02-02

