zoukankan
html css js c++ java
WebControl示例
using
System;
using
System.Web.UI;
using
System.Text;
namespace
Goodspeed.Web
{
/**/
///
<summary>
///
Summary description for WebTimer
///
</summary>
public
class
WebTimer:Control, IPostBackEventHandler
{
- Properties -
#region
- Properties -
private
int
_interval
=
5000
;
public
int
Interval
{
get
{
return
_interval; }
set
{ _interval
=
value; }
}
private
bool
_enabled;
public
bool
Enabled
{
get
{
return
_enabled; }
set
{ _enabled
=
value; }
}
private
static
readonly
object
EventTimer
=
new
object
();
public
bool
Visible
{
get
{
return
base
.Visible; }
set
{
base
.Visible
=
value; }
}
#endregion
- Constructor -
#region
- Constructor -
public
WebTimer()
{
//
//
TODO: Add constructor logic here
//
}
#endregion
- Event -
#region
- Event -
public
event
EventHandler Timer
{
add
{ Events.AddHandler(EventTimer, value); }
remove
{ Events.RemoveHandler(EventTimer, value); }
}
#endregion
/**/
///
<summary>
///
event handler functions
///
</summary>
///
<param name="e"></param>
protected
virtual
void
OnTime(EventArgs e)
{
EventHandler TimerHandler
=
(EventHandler)Events[EventTimer];
if
(TimerHandler
!=
null
)
{
TimerHandler(
this
, e);
}
}
- IPostBackEventHandler -
#region
- IPostBackEventHandler -
/**/
///
<summary>
///
实现IPostBackEventHandler接口
///
</summary>
///
<param name="eventArgs"></param>
void
IPostBackEventHandler.RaisePostBackEvent(
string
eventArgs)
{
OnTime(EventArgs.Empty);
}
#endregion
private
string
BulidJavascript()
{
StringBuilder sb
=
new
StringBuilder();
sb.Append(
"
<script>
"
);
sb.AppendFormat(
"
setTimeout(\
"
{
0
}
\
"
,{1})
"
,
new
object
[]
{
this
.Page.GetPostBackEventReference(
this
), _interval.ToString() }
);
sb.Append(
"
</script>
"
);
return
sb.ToString();
}
- Override -
#region
- Override -
/**/
///
<summary>
///
///
</summary>
///
<param name="e"></param>
///
<remarks>
///
此时调用page函数
///
</remarks>
protected
override
void
OnPreRender(EventArgs e)
{
base
.OnPreRender(e);
//
获取对客户端脚本函数的引用,调用该函数将使服务器发送回该页。
//
该方法还将一个参数传递到在服务器上执行回发处理的服务器控件。
Page.GetPostBackEventReference(
this
,
""
);
}
/**/
///
<summary>
///
///
</summary>
///
<param name="writer"></param>
///
<remarks>
///
page已进入绘制状态,此时调用page对象的任何函数都太迟了
///
</remarks>
protected
override
void
Render(HtmlTextWriter writer)
{
if
(Page
!=
null
)
{
//
确认在运行时为指定的 ASP.NET 服务器控件呈现 HtmlForm 控件
Page.VerifyRenderingInServerForm(
this
);
}
if
(_enabled)
{
writer.Write(BulidJavascript());
}
}
#endregion
}
}
查看全文
相关阅读:
【日语】标日初级上册单词(5-8)1
【日语】标日初级上册单词(1-4)1
【日语】计算机日语
百家姓日语
【日语】动物名称日语单词集合
【日语】日语常用会话1000句
【日语】编程相关日语词汇
【日语】日语N5学习
【日语】日语新闻核心词汇
使用uni-app开发微信小程序之登录模块
原文地址:https://www.cnblogs.com/goodspeed/p/79602.html
最新文章
关于try catch finally的执行顺序解释
const和define的差别
atexit()使用
C++ 操作符、局部 全局变量及自动转换原则
i=i+1,i+=1,i++哪个执行效率最高?为什么?
Mysql 存储引擎
转:QTCreater调试时提示ptrace不允许的操作(点击调试之后40秒钟gdb无回应)
qtcreator_process_stub中文输出乱码
ubuntu安转QTcreator出现The default mkspec symlink is broken
TCP 流量控制、拥塞控制
热门文章
浏览器的一个请求从发送到返回经历了什么(转)
用js如何获取一个上传文件的扩展名
25种提高网页加载速度的方法和技巧
ie和dom事件流的区别
写一个trim函数,兼容IE firefox chrome(正则)
HTTPS和HTTP有什么区别
为什么 ReactJS 不适合复杂的前端项目?
react.js的了解
json和jsonp
请描述一下 cookies,sessionStorage和localStorage的区别?
Copyright © 2011-2022 走看看