UpdatePanel触发javascript脚本技巧
2007-10-10 20:30
417 查看
相信很多同志都已经遇到这个问题了.这个本身不奇怪.下面我们来具体讨论此问题.
一.预呈现数据无法更改
1.大家知道,预呈现的数据是无法更改的,以前可能提到过,这里再看demo,自定义一个控件
[DefaultProperty("Text")]
[ToolboxData("<{0}:JsControl runat=server></{0}:JsControl>")]
public class JsControl : WebControl
protected void Button1_Click(object sender, EventArgs e)
[/b]Button1.Attributes["onmouseover"] = "alert('hello')";
2.在呈现过程中脚本初始化
第一种方法简单运用还可以,复杂就不行了,我们还是需要把脚本封装好跟控件结合使用的,我们不再在预呈现中注册脚本,而在呈现中实现(即RederContent方法).
我们只要保证脚本资源在前,初始化在后,控件在中间这一原则就可以了...以下方法是可行的
如下
protected override void RenderContents(HtmlTextWriter output)
protected void Button1_Click(object sender, EventArgs e)
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
function EndRequestHandler(sender, args)
function ActivateAlertDiv(visstring, elem, msg)
{
var adiv = $get(elem);
adiv.style.visibility = visstring;
adiv.innerHTML = msg;
}
其他的话我们也可以更改控件属性,就如加个onclick事件什么的都可以
五.另类解决方法
此方法比较的绝,但用起来比较的爽。UpdatePanel之所以无法获取到脚本数据,是因为其获取范围还不够。。。接着的想法是:
照样无刷新取数据,但取回来的数据跟Postback回来的数据一样。
可能有人说会比较耗性能,那都是相对的。不过也是一个很好的想法。Telerik公司的RadAjaxPanel就是这么实现的,有兴趣的可以下载一个用用
漏掉的请大家继续补充,这个问题比较的普遍,希望对大家有帮助。
一.预呈现数据无法更改
1.大家知道,预呈现的数据是无法更改的,以前可能提到过,这里再看demo,自定义一个控件
[DefaultProperty("Text")]
[ToolboxData("<{0}:JsControl runat=server></{0}:JsControl>")]
public class JsControl : WebControl
protected void Button1_Click(object sender, EventArgs e)
[/b]Button1.Attributes["onmouseover"] = "alert('hello')";
2.在呈现过程中脚本初始化
第一种方法简单运用还可以,复杂就不行了,我们还是需要把脚本封装好跟控件结合使用的,我们不再在预呈现中注册脚本,而在呈现中实现(即RederContent方法).
我们只要保证脚本资源在前,初始化在后,控件在中间这一原则就可以了...以下方法是可行的
如下
protected override void RenderContents(HtmlTextWriter output)
protected void Button1_Click(object sender, EventArgs e)
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
function EndRequestHandler(sender, args)
function ActivateAlertDiv(visstring, elem, msg)
{
var adiv = $get(elem);
adiv.style.visibility = visstring;
adiv.innerHTML = msg;
}
其他的话我们也可以更改控件属性,就如加个onclick事件什么的都可以
五.另类解决方法
此方法比较的绝,但用起来比较的爽。UpdatePanel之所以无法获取到脚本数据,是因为其获取范围还不够。。。接着的想法是:
照样无刷新取数据,但取回来的数据跟Postback回来的数据一样。
可能有人说会比较耗性能,那都是相对的。不过也是一个很好的想法。Telerik公司的RadAjaxPanel就是这么实现的,有兴趣的可以下载一个用用
漏掉的请大家继续补充,这个问题比较的普遍,希望对大家有帮助。
相关文章推荐
- UpdatePanel触发javascript脚本技巧
- UpdatePanel触发javascript脚本技巧
- UpdatePanel触发javascript脚本技巧javascript
- UpdatePanel触发javascript脚本的方法附代码
- UpdatePanel触发javascript脚本的方法附代码
- javascript里通过脚本触发UpdatePanel的刷新
- UpdatePanel里如果要调用JavaScript脚本应注意
- ASP.NET中UpdatePanel的javascript脚本失效的问题
- 自定义控件在AJAX的UpdatePanel中使用时添加javascript脚本方法
- UpdatePanel触发javascript脚本技巧
- 用JavaScript触发UpdatePanel更新的几种方法
- 用JavaScript触发UpdatePanel更新的几种方法
- 解决UpdatePanel无刷新,注册客户端脚本不执行问题
- AJAX使用了UpdatePanel后无法使用alert弹出脚本
- asp:UpdatePanel 中javascript的使用
- ASP.NET AJAX(14)__UpdatePanel与服务器端脚本控件
- asp:UpdatePanel 中javascript的使用
- 技巧和诀窍:用ASP.NET AJAX来处理UpdatePanel控件的出错
- 往含有updatepanel的页面注册脚本
- 利用javascript实现向UpdatePanel外部传值