我正在尝试编写支持AJAX的WebControl。这是我的第一个AJAX控件,除了通常使用UpdatePanels和ScriptManagers之外,我在其他角度和使用AJAX方面没有太多经验。
我发现了许多声称是AJAX启用控件的示例和项目,尽管它们似乎都缺少最后一步,即如何从客户端实际开始调用服务器端方法。
这是我目前正在使用的示例: http://dotnetslackers.com/articles/ajax/ASPNETAJAXControlDevelopment.aspx
很公平,它展示了如何使用一些额外的事件来扩展DOM模型......然而,一旦它被创建,它实际上似乎从未做过任何服务器端的事情?
如何在我的控件类中触发一些服务器端方法(在该示例中为ImageButton.cs)?
答案 0 :(得分:1)
抓住source for the AjaxControlToolkit并打开AjaxControlToolkit.sln
。有一个主要项目和大约40个控件供你玩。
有些非常简单易于包裹:
源代码在C#和JavaScript控件之间一致编写,并且评论很好。他们有一个基类(ExtenderBase/ExtenderControlBase.cs
),其大部分“状态保存”代码在库的其余部分重复使用。
我唯一想到的一些方法属性和代码与Visual Studio IDE中的设计时渲染有关。我还没有得到那些东西。
修改强>:
重新服务器端事件,任何实现IPostBackEventHandler
的类(即RaisePostBackEvent()
方法)都会公开自定义事件。例如,查看触发开发人员可以订阅的Changed
事件的Rating control。 ReorderList和
Tab Container也会实现自定义事件。