Asp.net自定義控件之加載層
來(lái)源:易賢網(wǎng) 閱讀:716 次 日期:2016-08-06 14:04:08
溫馨提示:易賢網(wǎng)小編為您整理了“Asp.net自定義控件之加載層”,方便廣大網(wǎng)友查閱!

本文旨在給大家開(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í)有所幫助

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:Asp.net自定義控件之加載層
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)