您现在的位置是:网站首页> 编程资料编程资料
Asp.net自定义控件之加载层_实用技巧_
2023-05-24
309人已围观
简介 Asp.net自定义控件之加载层_实用技巧_
本文旨在给大家开发自定义控件(结合js)一个思路,一个简单的示例,可能在实际项目中并不会这样做。
先来看看效果:
1.在静态页面里开发好想要的效果
jQuery.extend({ openloading: function (options) { var defaults = { msg: '数据提交中...', img: 'loading.gif' }; var opts = $.extend(defaults, options); $("body").append("
数据提交中..."); 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新建类库,新建类继承于WebControl
添加属性:
[Description("获取和设置触发器ID"), DefaultValue(""), Browsable(true), Category("杂项")]
public string TargetID { get; set; }
重写OnPreRender方法。方法中注册js脚本,该脚本指示ID为TargetID的控件点击时显示加载层
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");注册JQuery
Page.ClientScript.GetWebResourceUrl(this.GetType(), "BoControl.Images.loading.gif");是获取Web资源文件路径,如果你不想把图片文件嵌入dll请改为真实路径(如:Images/Loading.gif),相反你需要像下面一样指明图片文件和JQuery文件,并且图片属性-生成操作为:嵌入的资源
[assembly: WebResource("BoControl.Images.loading.gif", "image/gif")]//这里你还需注册JQuery
namespace BoControl
{
你还需要写Open方法和Close方法,方便后台代码中调用。
如:
////// 打开加载动画 /// UpdatePanel注册 /// /// UpdatePanel对象 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); } }
总的来说自定义控件的开发不算复杂,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- .Net页面局部更新引发的思考_实用技巧_
- 解析ABP框架领域层中的实体类与仓储类_基础应用_
- 超好用轻量级MVC分页控件JPager.Net_实用技巧_
- VS2015中C#版本6.0的新特性 你需要知道_实用技巧_
- Windows Server 2012 R2 Standard搭建ASP.NET Core环境图文教程_实用技巧_
- 利用ASP.NET MVC和Bootstrap快速搭建个人博客之后台dataTable数据列表_实用技巧_
- 利用ASP.NET MVC和Bootstrap快速搭建个人博客之文章打赏功能(六)_实用技巧_
- ASP.NET之Excel下载模板、导入、导出操作_实用技巧_
- 如何为CheckBoxList和RadioButtonList添加滚动条_实用技巧_
- .NET Core Windows环境安装配置教程_实用技巧_
