如何:在ASP.NET自定义服务器控件中使用AJAX
有没有人知道一个很好的教程,演示如何在自定义ASP.NET服务器控件中使用现有的
AJAX控件扩展器?
我不想构建“自定义AJAX服务器控件”.我想构建一个使用现有AJAX控件扩展器的自定义服务器控件. 我想结合一个asp:TextBox,asp:ImageButton,asp:CustomValidator(带有来自嵌入式资源的客户端javascript),以及一个ajax:CalendarExtender到一个自定义服务器控件中.或者已经创建了这个? 任何帮助将不胜感激.谢谢. 更新:基本上,我想创建一个具有ajax的CompositeControl:CalendarExtender作为子控件. 解决方法
听起来你所追求的是复合控制.它们几乎与用户控件完全相同,而不是使用ascx文件来创建以编程方式创建它们的控件.使用用户控件执行此操作的一大优势是,您最终可以将某些内容放入程序集中并在不同的项目中使用.
复合控件可以从Control或WebControl继承.我个人通常发现Control对继承更有用,因为我通常不需要从WebControl获得很多额外的东西,比如样式属性,因为我通常只通过单个CssClass属性进行样式化. 您还需要确保您的类实现INamingContainer接口.如果在同一父容器中多次使用该控件,这将确保每个子控件将自动获得唯一名称. 创建复合控件时最重要的事情是覆盖Control的CreateChildControls方法.实际创建控件的所有逻辑都应该放在这里.框架将自动确保在页面生命周期中的适当时间调用它. 这是一个小例子: public class MyCompositeControl : Control,INamingContainer { protected override void CreateChildControls() { Controls.Clear(); var textbox = new TextBox(); textbox.ID = "TextBox1"; Controls.Add(textbox); if (!Page.IsPostBack || !IsTrackingViewState) { // make sure you set the properties after // you add it to the parent or the viewstate // won't save properly textbox.MaxLength = 30; } var button = new Button(); button.ID = "Button1"; Controls.Add(button); if (!Page.IsPostBack || !IsTrackingViewState) { button.Text = "Save"; } } } 我不认为ASP.NET AJAX应该复杂化这么多.我唯一能想到的就是你需要确保在复合控件添加到的任何页面上创建一个ScriptManager. 在MSDN网站上有一个这样的full example. this blog还有另一个很好的例子. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在ASP.NET MVC中未调用WebClient异步回调
- asp.net-mvc – ASP.NET MVC 4“DictionaryValueProvider.C
- asp.net-core – 为什么要在本地运行IIS Express?
- asp.net-mvc – 如何使用不同的名称绑定视图模型属性
- asp.net – 检查是否在集成管道模式
- asp.net-core – 如何在使用asp.net 5时更改登录URL
- c#中分布方法和分部类
- 多线程和异步编程示例和实践-踩过的坑
- asp.net – 如何从WCF客户端拦截raw soap request / respon
- asp.net-mvc-3 – MVC3 Razor中的多语言实现
- asp.net – Viewstate压缩问题
- asp.net TextBox中的值和文本属性(值被Text覆盖)
- asp.net-mvc – 我在MVC 5 Visual Studio 2013中
- .NET Core采用的全新配置系统[8]: 如何实现配置与
- asp.net-mvc – MVC3记录请求的最佳方式
- asp.net-mvc – 在视图中创建DropDownListFor项
- asp.net-mvc – 如何在MVC Razor视图中查找编译时
- asp.net-mvc – 验证日期格式无效
- asp.net-web-api2 – 使用未绑定功能时具有多个路
- 实体框架 – 我们如何使用Breeze的本地时区生存