ComponentArt 的脚本注册判断还是很全面的,判断了各种情况,在控件开发学习中还是很值得借鉴的
一样画葫芦练手做了几个简单的控件:
1.STextBox =>增加几个属性,只是为了拼Sql的时候字符转义方便些(TrimedText,SqlText,SqlTrimedText)
2.SButton = > 增加几个小属性,象confirm,waitmessage...
3.SImgButton = > 增加鼠标滑过,离开,按下的图片设置
4.SXpButton = > 按模板自动生成三组效果图片(鼠标滑过,离开,按下)
5.SGroupBox =>GroupBox 只有Caption属性,不过设计时写的不好(直接使用了系统的Designer).不直观,不过我自己够用了,改天有空再学习修改Designer
注册代码源代码:
1
[控件学习-3]ComponentArt 的脚本注册机制学习 2
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 /**//// <summary>
3
[控件学习-3]ComponentArt 的脚本注册机制学习 /// 绘制全局脚本
4
[控件学习-3]ComponentArt 的脚本注册机制学习 /// </summary>
5
[控件学习-3]ComponentArt 的脚本注册机制学习 /// <param name="output"></param>
6
[控件学习-3]ComponentArt 的脚本注册机制学习 /// <param name="sDefaultPath"></param>
7
[控件学习-3]ComponentArt 的脚本注册机制学习 /// <param name="sScriptFile"></param>
8
[控件学习-3]ComponentArt 的脚本注册机制学习 protected void WriteGlobalClientScript(HtmlTextWriter output, string sDefaultPath, string sScriptFile)
9
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 {
10
[控件学习-3]ComponentArt 的脚本注册机制学习 string sScript = GenerateClientScriptBlock(sDefaultPath, sScriptFile);
11
[控件学习-3]ComponentArt 的脚本注册机制学习 string sInstanceId = sScriptFile;
12
[控件学习-3]ComponentArt 的脚本注册机制学习 13
[控件学习-3]ComponentArt 的脚本注册机制学习 output.Write(sScript);
14
[控件学习-3]ComponentArt 的脚本注册机制学习 }
15
[控件学习-3]ComponentArt 的脚本注册机制学习 16
[控件学习-3]ComponentArt 的脚本注册机制学习 17
[控件学习-3]ComponentArt 的脚本注册机制学习 18
[控件学习-3]ComponentArt 的脚本注册机制学习 19
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 20
[控件学习-3]ComponentArt 的脚本注册机制学习 /// 获取脚本块
21
[控件学习-3]ComponentArt 的脚本注册机制学习 22
[控件学习-3]ComponentArt 的脚本注册机制学习 23
[控件学习-3]ComponentArt 的脚本注册机制学习 24
[控件学习-3]ComponentArt 的脚本注册机制学习 /// <returns></returns>
25
[控件学习-3]ComponentArt 的脚本注册机制学习 private string GenerateClientScriptBlock(string sDefaultPath, string sScriptFile)
26
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 27
[控件学习-3]ComponentArt 的脚本注册机制学习 string sScript = string.Empty;
28
[控件学习-3]ComponentArt 的脚本注册机制学习 string sScriptLocation = string.Empty;
29
[控件学习-3]ComponentArt 的脚本注册机制学习 //相应版本 主版本+副版本+编译版本
30
[控件学习-3]ComponentArt 的脚本注册机制学习 string sVersionString =
31
[控件学习-3]ComponentArt 的脚本注册机制学习 Assembly.GetExecutingAssembly().GetName().Version.Major.ToString() + "_" +
32
[控件学习-3]ComponentArt 的脚本注册机制学习 Assembly.GetExecutingAssembly().GetName().Version.Minor.ToString() + "_" +
33
[控件学习-3]ComponentArt 的脚本注册机制学习 Assembly.GetExecutingAssembly().GetName().Version.Build.ToString();
34
[控件学习-3]ComponentArt 的脚本注册机制学习 35
[控件学习-3]ComponentArt 的脚本注册机制学习 if(this.ClientScriptLocation != string.Empty)//指定脚本位置
36
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 37
[控件学习-3]ComponentArt 的脚本注册机制学习 sScriptLocation = Path.Combine(Path.Combine(this.ClientScriptLocation, sVersionString), sScriptFile).Replace("\\", "/");
38
[控件学习-3]ComponentArt 的脚本注册机制学习 }
39
[控件学习-3]ComponentArt 的脚本注册机制学习 else
40
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 41
[控件学习-3]ComponentArt 的脚本注册机制学习 // First, try application config variable
42
[控件学习-3]ComponentArt 的脚本注册机制学习 //首先,先从程序配置文件读取web.config
43
[控件学习-3]ComponentArt 的脚本注册机制学习 string sLocation = ConfigurationSettings.AppSettings["ComponentArt.Web.UI.ClientScriptLocation"];
44
[控件学习-3]ComponentArt 的脚本注册机制学习 if(sLocation != null)
45
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 46
[控件学习-3]ComponentArt 的脚本注册机制学习 //脚本地址
47
[控件学习-3]ComponentArt 的脚本注册机制学习 sScriptLocation = Path.Combine(Path.Combine(sLocation, sVersionString), sScriptFile).Replace("\\", "/");
48
[控件学习-3]ComponentArt 的脚本注册机制学习 49
[控件学习-3]ComponentArt 的脚本注册机制学习 50
[控件学习-3]ComponentArt 的脚本注册机制学习 // Next, try server root
51
[控件学习-3]ComponentArt 的脚本注册机制学习 //IIS根目录
52
[控件学习-3]ComponentArt 的脚本注册机制学习 if(sScriptLocation == string.Empty)
53
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 54
[控件学习-3]ComponentArt 的脚本注册机制学习 try
55
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 56
[控件学习-3]ComponentArt 的脚本注册机制学习 string sStandardRootClientScriptPath = Path.Combine(Path.Combine("/componentart_webui_client", sVersionString), sScriptFile).Replace("\\", "/");
57
[控件学习-3]ComponentArt 的脚本注册机制学习 58
[控件学习-3]ComponentArt 的脚本注册机制学习 if(File.Exists(Context.Server.MapPath(sStandardRootClientScriptPath)))
59
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 60
[控件学习-3]ComponentArt 的脚本注册机制学习 sScriptLocation = sStandardRootClientScriptPath;
61
[控件学习-3]ComponentArt 的脚本注册机制学习 62
[控件学习-3]ComponentArt 的脚本注册机制学习 }
63
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 catch
[控件学习-3]ComponentArt 的脚本注册机制学习 {}
64
[控件学习-3]ComponentArt 的脚本注册机制学习 }
65
[控件学习-3]ComponentArt 的脚本注册机制学习 66
[控件学习-3]ComponentArt 的脚本注册机制学习 // If failed, try application root
67
[控件学习-3]ComponentArt 的脚本注册机制学习 //程序根目录
68
[控件学习-3]ComponentArt 的脚本注册机制学习 69
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 70
[控件学习-3]ComponentArt 的脚本注册机制学习 71
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 72
[控件学习-3]ComponentArt 的脚本注册机制学习 string sAppRootClientScriptPath = Path.Combine(Path.Combine(Path.Combine(Page.Request.ApplicationPath, "componentart_webui_client"), sVersionString), sScriptFile).Replace("\\", "/");
73
[控件学习-3]ComponentArt 的脚本注册机制学习 74
[控件学习-3]ComponentArt 的脚本注册机制学习 if(File.Exists(Context.Server.MapPath(sAppRootClientScriptPath)))
75
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 76
[控件学习-3]ComponentArt 的脚本注册机制学习 sScriptLocation = sAppRootClientScriptPath;
77
[控件学习-3]ComponentArt 的脚本注册机制学习 78
[控件学习-3]ComponentArt 的脚本注册机制学习 79
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 80
[控件学习-3]ComponentArt 的脚本注册机制学习 81
[控件学习-3]ComponentArt 的脚本注册机制学习 }
82
[控件学习-3]ComponentArt 的脚本注册机制学习 83
[控件学习-3]ComponentArt 的脚本注册机制学习 if(sScriptLocation != string.Empty)
84
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 85
[控件学习-3]ComponentArt 的脚本注册机制学习 // Do we have a tilde?
86
[控件学习-3]ComponentArt 的脚本注册机制学习 if(sScriptLocation.StartsWith("~") && Context != null && Context.Request != null)
87
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 88
[控件学习-3]ComponentArt 的脚本注册机制学习 string sAppPath = Context.Request.ApplicationPath;
89
[控件学习-3]ComponentArt 的脚本注册机制学习 if(sAppPath.EndsWith("/"))
90
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 91
[控件学习-3]ComponentArt 的脚本注册机制学习 sAppPath = sAppPath.Substring(0, sAppPath.Length - 1);
92
[控件学习-3]ComponentArt 的脚本注册机制学习 }
93
[控件学习-3]ComponentArt 的脚本注册机制学习 94
[控件学习-3]ComponentArt 的脚本注册机制学习 sScriptLocation = sScriptLocation.Replace("~", sAppPath);
95
[控件学习-3]ComponentArt 的脚本注册机制学习 96
[控件学习-3]ComponentArt 的脚本注册机制学习 97
[控件学习-3]ComponentArt 的脚本注册机制学习 //连接外部JS文件
98
[控件学习-3]ComponentArt 的脚本注册机制学习 if(File.Exists(Context.Server.MapPath(sScriptLocation)))
99
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 100
[控件学习-3]ComponentArt 的脚本注册机制学习 sScript = "<script src=\"" + sScriptLocation + "\" type=\"text/javascript\"></script>";
101
[控件学习-3]ComponentArt 的脚本注册机制学习 102
[控件学习-3]ComponentArt 的脚本注册机制学习 else
103
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 104
[控件学习-3]ComponentArt 的脚本注册机制学习 throw new Exception(sScriptLocation + " not found");
105
[控件学习-3]ComponentArt 的脚本注册机制学习 106
[控件学习-3]ComponentArt 的脚本注册机制学习 107
[控件学习-3]ComponentArt 的脚本注册机制学习 else
108
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习
[控件学习-3]ComponentArt 的脚本注册机制学习 109
[控件学习-3]ComponentArt 的脚本注册机制学习 // If everything failed, emit our internal script
110
[控件学习-3]ComponentArt 的脚本注册机制学习 //使用内嵌资源文件
111
[控件学习-3]ComponentArt 的脚本注册机制学习 sScript = Utils.DemarcateClientScript(GetResourceContent(sDefaultPath + "." + sScriptFile));
112
[控件学习-3]ComponentArt 的脚本注册机制学习 113
[控件学习-3]ComponentArt 的脚本注册机制学习 114
[控件学习-3]ComponentArt 的脚本注册机制学习 return sScript;
115
[控件学习-3]ComponentArt 的脚本注册机制学习 本文转自浪子博客园博客,原文链接:http://www.cnblogs.com/walkingboy/archive/2005/11/25/284506.html,如需转载请自行联系原作者