网站首页 > 网络编程教程 > ASP.NET教程 > ASP.NET2.0 WebRource,开发微调按钮控件

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

  • 作者:互联网
  • 时间:2009-06-30 16:31:28

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

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

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


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

下面以微调控件为示例。

使用步骤:
添加要嵌入的资源(比如图像)到项中
在资源管理器中,单击文件,在property window(属性窗口)中build action选择embedded resource(嵌入资源)。
添加下列文件到你的as***sbly.cs文件哪中
[assembly: WebResource("Ob***.Web.UI.WebControls.NumericTextBox.js", "application/x-javascript")]
[assembly: WebResource("Ob***.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 = th***Page.ClientScript.GetWebResourceUrl(typeof(NumericTextBox),
 "Ob***.Web.UI.WebControls.NumericTextBox_" + th***ImageSet.ToString() + "_BtnUp.gif");GetWebResourceUrl method:Gets a URL reference to a server-side resource.(获取对服务器端资源的 URL 引用)
我发现在早期版本当中。它的使用方法是:th***page.GetWebResourceUrl

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

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

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

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

        }      
下面是微调控件的截图

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

maxvalue="10" minvalue="0">
maxvalue="10" minvalue="0">

来源地址:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/
dn***5/html/webresource.asp
由于原来的代码有点问题,很多特性都是最新VS2005不支持的。所以进行了修改。
源码下载:AS***ET2.0早期版本。所以才进行了简单的修改。
以后在努力了。

cnzc's blogs