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

asp.net|web|按钮|控件

现在。有许多开发人员已经在使用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("Obies.Web.UI.WebControls.NumericTextBox.js", "application/x-javascript")]
[assembly: WebResource("Obies.Web.UI.WebControls.NumericTextBox_Silver_BtnUp.gif", "image/gif")]请注意WebResourceAttribute格式:
[assembly: WebResourceAttribute("MyNameSpaces.Resources.MyImage.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() + "_BtnUp.gif");GetWebResourceUrl method:Gets a URL reference to a server-side resource.(获取对服务器端资源的 URL 引用)
我发现在早期版本当中。它的使用方法是:this.page.GetWebResourceUrl

上面代码是从指定的程序集中当中获取图像名称:Obies.Web.UI.WebControls.NumericTextBox_" + this.ImageSet.ToString() + "_BtnUp.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),
"Obies.Web.UI.WebControls.NumericTextBox.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早期版本。所以才进行了简单的修改。
以后在努力了。

时间: 2025-01-20 12:00:35

ASP.NET2.0 WebRource,开发微调按钮控件的相关文章

ASP.NET2.0 WebRource,开发微调按钮控件_实用技巧

现在.有许多开发人员已经在使用ASP.NET2.0的WebResource的功能了.WebResource允许我们嵌入资源到程序集中.包括图像,文本等. 在介绍WebResource就不得不介绍一下WebResource.axd,我们来看一下 script language="javascript"     src="WebResource.axd?a=s&r=WebUIValidation.js&t=631944362841472848"    

Asp.Net2.0下C#环境 Login控件实现用户登录

原文:Asp.Net2.0下C#环境 Login控件实现用户登录一.前台显示效果 二.前台代码             <asp:Login ID="Login1" runat="server" BackColor="#F7F7DE" BorderColor="#CCCC99" BorderStyle="Solid"                BorderWidth="1px"

用VS2005实现ASP.NET2.0移动开发

asp.net 即将到来的3G技术,将使得移动设备突破现在的带宽限制,这样我们就可以构建出许多新颖且功能强大的移动应用.现在已经有许多商业应用都开始向移动设备上进行迁移,所以对开发者来说,现在就开始移动开发的学习将是一种非常适合的时机. 在本文中我将介绍如何使用Visual Studio 2005创建一个ASP.NET 2.0移动程序,然后介绍一些常用的移动开发控件并以适合的方式在程序中加于应用,最后将谈谈如何开发针对特定移动设备的WEB程序和管理程序中的ViewState(视图状态)和Sess

ASP.NET2.0服务器控件开发之实现事件

asp.net|服务器|控件|控件开发 前面几篇文章讲解了与利用ASP.NET 2.0技术创建自定义服务器控件属性有关的内容.从本文开始,包括随后的几篇文章将探讨创建自定义服务器控件事件的方法.本文重点对实现控件事件的基本概念进行介绍,这些概念对于帮助开发人员为服务器控件创建事件有着重要意义. 1. 事件基本概念 事件是当有动作发生或者状态改变时,类发出的信息或者通知.通常情况下,状态的发生或者改变由用户界面动作初始化,例如,单击按钮,或者由于其他的程序逻辑引起.产生事件的类或者说发送通知的类叫

ASP.NET 2.0移动开发之列表控件

asp.net|控件 概述 在很多情况下,我们都会使用到列表控件来方便用户选择一些选项.例如在某网站上注册新用户时,通常会询问你的性别是"男"还是"女",这时我们用单项按钮以供用户做出相应的选择.还有当你填写自己的家庭地址时,通常会使用到一个包含各省省名的下拉列表来供用户直接选择,这样可以减少用户的输入量.上述的这些单项按钮和下拉列表都在ASP.NET移动程序中都是以列表控件的形式存在的.我们可以使用列表控件来呈现各种形式(单项.多选.下拉列表)的列表,以供用户选择

VC6.0从开发activex ocx控件到发布到网上全过程

ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行.控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件. 一:vc创建activex控件 创建一个activex控件,名称为:test.ocx,创建步骤略.显示结果如下: 为该控件增加一个方法void GetStr(LPCTSTR str), 该方法内部代码如下: 这样,GetStr方法就被加入

关于ASP.NET2.0的登录问题

问题描述 关于ASP.NET2.0的登陆我用了ASP.NET2.0自带的Login控件,但是只允许一个用户登陆.第一个用户登陆成功后,但有第二个用户登陆时,第一个用户就被刷新了,在LoginName上显示的都是第二个用户的登录名,怎么回事啊!我是在一台机上同时打开两个登陆页面的!ASP.NET2.0不允许一台机上同时多用户登陆吗? 解决方案 解决方案二:用IE登陆一个FIREFOX登陆一个OPREA登陆一个......解决方案三:我是在一台机上同时打开两个登陆页面的---------------

ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

原文:ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性                                         深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第三篇 ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件 ASP.NET自定义控件组件开发 第三章 为控件添加事件 前

asp.net1.1放上了web按钮控件,运行单击后刷新的厉害,有啥法子解决?查了资料,似乎net2.0里面方法不少.还有就是Ajax,但ajax技术听说不能被

问题描述 asp.net1.1放上了web按钮控件,运行单击后刷新的厉害,有啥法子解决?查了资料,似乎net2.0里面方法不少.还有就是Ajax,但ajax技术听说不能被搜索引擎收入,也不大敢用?除此以为啊有啥方法了?难道只能用asp里面的方法把web按钮去掉,还成inputbutton?然后用Iframe???