当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET2.0 WebRource,开发微调按钮控件

ASP.NET
赫赫大名的A*寻路算法(vb.net版本)
asp.net(c#)下Jmai去说明 使用与下载
[原创]完美解决Could not load file or assembly ''AjaxPro.2'' or one of its dependencies. 拒绝访问。
asp.net下gridview 批量删除的实现方法
用CSS实现图片倾斜 只支持IE
.net get set用法小结
vs 不显示行号的操作方法
ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)
ASP.Net不执行问题一解
asp.net 无限分类
让VS2008对JQuery语法的智能感知更完美一点
扩展方法ToJSON() and ParseJSON()
asp.net下PageMethods使用技巧
Linq to SQL Delete时遇到问题的解决方法
实现ASP.NET多文件上传程序代码
ASP.NET AJAX 1.0 RC开发10分钟图解
asp.net get set用法
ASP.NET下使用WScript.Shell执行命令
asp.net2.0实现邮件发送(测试成功)
Asp.net 无限级分类实例代码

ASP.NET2.0 WebRource,开发微调按钮控件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-11   浏览: 38 ::
收藏到网摘: n/a

现在。有许多开发人员已经在使用ASP.NET2.0的WebResource的功能了。WebResource允许我们嵌入资源到程序集中。包括图像,文本等。

在介绍WebResource就不得不介绍一下WebResource.axd,我们来看一下

script language="javascript" src="WebResource.axd?a=s&r=WebUIValidation.js&t=631944362841472848" type="text/javascript"></script>目前我发现webResource.axd的参数跟现在版本有属不同。在早期文章介绍属性:
a 程序集名称
r 资源文件名称
t 程序集最后修改的时间


webResource.axd只是ISAPI中的一个映射。你也可以在使用IhttpHandler。<add verb="GET" path="WebResource.axd" type="System.Web.Handlers.AssemblyResourceLoader" /> webResource.axd是通过AssemblyResourceLoader类来自定义处理HTTP请求,根据所query传递的程序来识别从哪个程序集中获取哪个资源。

下面以微调控件为示例。

使用步骤:
添加要嵌入的资源(比如图像)到项中
在资源管理器中,单击文件,在property window(属性窗口)中build action选择embedded resource(嵌入资源)。
添加下列文件到你的assessbly.cs文件哪中
[assembly: WebResource("/upload/tech/20091011/20091011143309_941e1aaaba585b952b62c14a3a175a61.js", "application/x-javascript")]
[assembly: WebResource("/upload/tech/20091011/20091011143310_a3f390d88e4c41f2747bfa2f1b5f87db.gif", "image/gif")]请注意WebResourceAttribute格式:
[assembly: WebResourceAttribute("/upload/tech/20091011/20091011143310_bbcbff5c1f1ded46c25d28119a85c6c2.gif", "image/gif")]
在CONTROL源码当中。你需要使用下面代码来获取图像
// get WebResource URLs for the embedded gif images
String BtnUpImgSrc = this.Page.ClientScript.GetWebResourceUrl(typeof(NumericTextBox),
"Obies.Web.UI.WebControls.NumericTextBox_" + this.ImageSet.ToString() + "/upload/tech/20091011/20091011143311_e4a6222cdb5b34375400904f03d8e6a5.gif");GetWebResourceUrl method:Gets a URL reference to a server-side resource.(获取对服务器端资源的 URL 引用)
我发现在早期版本当中。它的使用方法是:this.page.GetWebResourceUrl

上面代码是从指定的程序集中当中获取图像名称:Obies.Web.UI.WebControls.NumericTextBox_" + this.ImageSet.ToString() + "/upload/tech/20091011/20091011143311_e4a6222cdb5b34375400904f03d8e6a5.gif,它返回的是一个服务器端资源的URL引用地址。类似于:
WebResource.axd?d=gWYJBlnQKynoTePlJ34jxyoSpR2Rh9lpYd8ZrSl0&t=632812333820000000

另外,MS提供一个Header类。Header类主要是对HTML页面中的<Head runat="server"></head>的操作。包括Title等
呵呵。以后要修改一个页面的标题很很简单了。
this.Header.Title = "This is the new page title.";
添加CSS样式(style attribute) Style style = new Style();
style.ForeColor = System.Drawing.Color.Navy;
style.BackColor = System.Drawing.Color.LightGray;

// Add the style to the header for the body of the page
this.Header.StyleSheet.CreateStyleRule(style, null, "body");

protected override void OnPreRender (EventArgs e) {
// get a WebResource URL for the core JS script and register it
this.Page.ClientScript.RegisterClientScriptResource(typeof(NumericTextBox),
"/upload/tech/20091011/20091011143309_941e1aaaba585b952b62c14a3a175a61.js");
// get a WebResource URL for the embedded CSS
String css = this.Page.ClientScript.GetWebResourceUrl (typeof(NumericTextBox),
"Obies.Web.UI.WebControls.NumericTextBox_" + this.ImageSet + ".css");
// register the CSS
// this.Page.StyleSheetTheme = css;
//this.Page.Header.LinkedStyleSheets.Add (css);
//早期版本的方法?只能用下面的代码来解决了
HtmlLink link = new HtmlLink();
link.Attributes.Add("type", "text/css");
link.Attributes.Add("rel", "stylesheet");
link.Attributes.Add("href", css);
this.Page.Header.Controls.Add(link);

}
下面是微调控件的截图

使用方法:
<%@ register tagprefix="cc" namespace="Obies.Web.UI.WebControls" assembly="Obies.Web.UI.WebControls" %>

<cc:NumericTextBox width="50" ImageSet="Silver" length="2" runat="server" id="NumericTextBox1"
maxvalue="10" minvalue="0"></cc:NumericTextBox>
<cc:NumericTextBox width="50" ImageSet="Green" length="2" runat="server" id="NumericTextBox2"
maxvalue="10" minvalue="0"></cc:NumericTextBox>

来源地址:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/
dnvs05/html/webresource.asp
由于原来的代码有点问题,很多特性都是最新VS2005不支持的。所以进行了修改。
源码下载:http://www.cnblogs.com/Files/cnzc/PostWebFormBetweenFrames.zip

在写这篇文章查了很多资料。也尝试用心去写。但总感觉写的不是很好。网上也有相关的webresource的介绍。但发现很多都是目前最新版本不支持的。不知道是不是以前ASP.NET2.0早期版本。所以才进行了简单的修改。
以后在努力了。