Tip:在使用AjaxControlTookit的控件时响应事件
Extender组件对于Behavior属性的支持
<asp:Button ID="Button1" runat="server" Text="Button" /> <asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px">Hello World! </asp:Panel> <ajaxToolkit:ModalPopupExtender runat="server" TargetControlID="Button1" PopupControlID="Panel1" />
Sys.Application.add_init(function() {$create(AjaxControlToolkit.ModalPopupBehavior,{"PopupControlID":"Panel1","dynamicServicePath" : "/Default.aspx","id":"ctl02"},null,null,$get("Button1")); });
[ExtenderControlProperty] public string PopupControlID {get { ... }set { ... } }
有人说:我要响应事件
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <ajaxToolkit:CalendarExtender runat="server" TargetControlID="TextBox1"OnClientShown="onShownHandler"/> <textarea id="TraceConsole" cols="50" rows="10"></textarea> <script language="javascript" type="text/javascript">function onShownHandler(sender, args){Sys.Debug.trace("Calendar shown.");} </script>
Sys.Application.add_init(function() {$create(AjaxControlToolkit.CalendarBehavior,{"id":"ctl02"}, {"shown":onShownHandler}, null, $get("TextBox1")); });
[DefaultValue("")] [ExtenderControlEvent] [ClientPropertyName("shown")] public virtual string OnClientShown {get { ... }set { ... } }
……只可惜并非每个Extender都那么友好
<asp:Repeater ID="Repeater1" runat="server"><ItemTemplate><a id="link" runat="server">Hover on me!</a><asp:Panel runat="server" ID="tooltip" style="display:none;border:solid 1px black; padding:5px; background-color:Yellow; width:100px">Loading...</asp:Panel><ajaxToolkit:HoverMenuExtender runat="server" ID="hoverMenu"TargetControlID="link" PopupControlID="tooltip" PopupPosition="Right" /></ItemTemplate><SeparatorTemplate><hr /></SeparatorTemplate> </asp:Repeater>
<script language="javascript" type="text/javascript">function onShownHandler(sender, args){HoverMenuService.GetContent(onSuccess, null, sender.get_popupElement());}function onSuccess(result, tooltip){tooltip.innerHTML = result;} </script> <asp:Repeater ID="Repeater1" runat="server"><ItemTemplate><a id="link" runat="server">Hover on me!</a><asp:Panel runat="server" ID="tooltip"style="display:none; border:solid 1px black; padding:5px; background-color:Yellow; width:100px;">Loading...</asp:Panel><ajaxToolkit:HoverMenuExtender runat="server" ID="hoverMenu"TargetControlID="link" PopupControlID="tooltip" PopupPosition="Right" /><script language="javascript" type="text/javascript">Sys.Application.add_load(function(sender, args){if (args.get_isPartialLoad()) return;var behaviorId = '<%# (Container.FindControl("hoverMenu") as HoverMenuExtender).BehaviorID %>';$find(behaviorId).add_shown(onShownHandler);})</script></ItemTemplate><SeparatorTemplate><hr /></SeparatorTemplate> </asp:Repeater>
<a id="Repeater1_ctl00_link">Hover on me!</a> <div id="Repeater1_ctl00_tooltip" style="...">Loading... </div> <script language="javascript" type="text/javascript">Sys.Application.add_load(function(sender, args){if (args.get_isPartialLoad()) return;var behaviorId = 'Repeater1_ctl00_hoverMenu';$find(behaviorId).add_shown(onShownHandler);}) </script> <hr /> <a id="Repeater1_ctl02_link">Hover on me!</a> <div id="Repeater1_ctl02_tooltip" style="...">Loading... </div> <script language="javascript" type="text/javascript">Sys.Application.add_load(function(sender, args){if (args.get_isPartialLoad()) return;var behaviorId = 'Repeater1_ctl02_hoverMenu';$find(behaviorId).add_shown(onShownHandler);}) </script> ...
结论
Tip:在使用AjaxControlTookit的控件时响应事件相关推荐
- MFC vc++ 中CTreeContrl如何自定义实现鼠标单击或双击响应事件 ,即重写类似于控件的响应事件或消息
代码部分摘录自"天上的猩猩的专栏":https://blog.csdn.net/qq_23992597/article/details/51006920#commentsedit ...
- MFC动态创建控件并响应事件代码实现过程
MFC动态创建控件以及响应动态创建的控件的事件的实现方法如下. 1.创建对象 用new进行动态创建一个对象.然后调用Create函数创建窗口,在函数的父窗口参数中传入this或者用AfxGet ...
- LibUIDK 学习------CSkinListCtrl控件消息响应事件
2021年修改了控件继承自CUIWnd,因此对于CSkinListCtrl控件的消息响应如下: ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1) ON_ ...
- 使用控件时提示“未声明标识符“的解决方法
使用控件时提示"未声明标识符"的解决方法 参考文章: (1)使用控件时提示"未声明标识符"的解决方法 (2)https://www.cnblogs.com/Ro ...
- 用了GradientDrawable后,当点击控件时,控件大小发生变化
android新手:发现一个很奇怪的问题,用了GradientDrawable后,当点击控件时,程序自动使我的一些控件大小保持一致,为什么呢,我就是不想它们保持一致啊 改了好久好久:GradientD ...
- 给echarts添加筛选时间控件时,控件不显示,并设置数据库无数据时echarts模块显示暂无数据
给echarts模块添加时间控件时,控件无效,经检查发现,控件被画布遮盖了,需要用一个form标签包括时间控件,否则时间控件不生效.另外,如果echarts从后台获取到的数据为空,需要提示暂无信息.这 ...
- C# 多线程修改控件时遇到:创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
一般在多线程调用UI控件时,涉及到跨线程修改UI,需要使用委托,比如如下: this.Invoke((MethodInvoker)delegate{btnRefresh.Enabled = true; ...
- 使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容
第一次在CNBlogs上发Post是提出一个有关使用WebBrowser控件时对SELECT网页元素操作的疑惑,这个问题至今也没有解决,后来有朋友在该Post的评论里询问WebBrowser控件如何在 ...
- 如何解决“呈现控件时出错”的问题(转)
webpart部署后在SPD中打开显示"呈现控件时出错",后查到这篇文章,主要问题是在CreateChildControls中调用了this.page.Header,在设计视图时, ...
最新文章
- 最短路合集(Dijkstra、SPFA、Floyd以及路径还原模板)
- php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...
- emacs .emacs_使用Emacs进行社交并跟踪您的待办事项列表
- 月租最便宜的手机卡_有什么价格便宜,月租少,流量多,并且可以从旧套餐转入的手机卡推荐?...
- 使用selenium爬取搜狗微信文章
- 【C#】C#实现端口扫描器
- 实现搜索框(含历史搜索记录)
- My_blog个人博客系统
- 读季琦《创始人·手记》
- 良好的编程习惯有哪些?
- html邮件在线制作模板,最全EDM模板美化教程,在电子邮件中使用CSS和HTML
- JAVASE面向对象基础
- 如何做好项目管理任务分配
- bit,B,KB,MB,GB,TB,PB分别是什么单位,换算是什么
- 详细的SQL注入相关的命令
- 目标检测 YOLOv5 - 如何提高模型的指标,提高精确率,召回率,mAP等
- 基于STM32F407的摄像头(不带FIFO的OV7670)图像采集及LCD显示实验-笔记整理
- Hexo博客搭建之Next主题添加搜索服务
- 基于electron的音视频播放器
- 海滩上有一堆桃子,五只猴子来分(C语言)