1.如何嵌入资源(js,image,css)?如何使用
A: 把资源文件的属性改成Embedded Resource, 在代码文件namespace前加入资源的声明,
[assembly: WebResource("Terry.Webcontrol.project.default.css", "text/css", PerformSubstitution=true)]
[assembly: WebResource("Terry.Webcontrol.project.file.js", "text/javascript")]
如果资源文件要引用其它嵌入资源,声明时要加 PerformSubstitution=true, 然后用服务器标签<%=webresource("xxx")%>就可以引用
2. 控件属性是否要放到viewstate? 如果页面禁用了ViewState怎么办?
A:为了在禁用了ViewState时使用控件状态,需要做额外的几个工作:
1. 向页面注册使用控件状态
2. 在控件状态保存事件(Control 类的SaveControlState 方法)中保存相关数据
3. 在控件状态读取事件(Control 类的LoadControlState 方法)中读取保存的数据
1 protected override void LoadControlState(object savedState)
2 {
3 if (savedState != null)
4 {
5 object[] obj = (object[])savedState;
6 base.LoadControlState(obj[0]);
7 _FileSizeLimit = Convert.ToString(obj[1]);
8 _UploadUrl = Convert.ToString(obj[2]);
9 }
10 base.LoadControlState(savedState);
11 }
12 protected override object SaveControlState()
13 {
14 object[] obj = new object[4];
15 obj[0] = base.SaveControlState();
16 obj[1] = _FileSizeLimit;
17 obj[2] = _UploadUrl;
18 return obj;
19 }
2 {
3 if (savedState != null)
4 {
5 object[] obj = (object[])savedState;
6 base.LoadControlState(obj[0]);
7 _FileSizeLimit = Convert.ToString(obj[1]);
8 _UploadUrl = Convert.ToString(obj[2]);
9 }
10 base.LoadControlState(savedState);
11 }
12 protected override object SaveControlState()
13 {
14 object[] obj = new object[4];
15 obj[0] = base.SaveControlState();
16 obj[1] = _FileSizeLimit;
17 obj[2] = _UploadUrl;
18 return obj;
19 }