我正在尝试编写一个 AJAX 控件扩展器,它可以修改 AJAX 控件工具包TabPanel
,以便TabPanel
's 的标题在文本之后有一个图像,单击该图像时,使用客户端脚本(没有回发)隐藏选项卡标题。我还希望能够指定一个 onClientClose 函数,该函数在关闭选项卡时也会调用。
我是 ASP 控件扩展器的新手,到目前为止,我一直遵循 [tutorial]( http://www.asp.net/ajax/tutorials/creating-a-custom-ajax-control-toolkit-control-extender -cs "Creating a Custom AJAX Control Toolkit Control Extender") 在 ASP.NET 站点上用于创建自定义扩展器。我已经调用了我的扩展器 a ClosableTabPanelExtender
,并且我的扩展器项目构建了。我像这样设置了一个测试网页:
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />
<asp:TabContainer ID="TabContainer1" runat="server">
<asp:TabPanel ID="TabPanel0" runat="server">
<HeaderTemplate>Tab 0</HeaderTemplate>
<ContentTemplate>Hello!</ContentTemplate>
</asp:TabPanel>
<asp:TabPanel ID="TabPanel1" runat="server">
<HeaderTemplate>Tab 1</HeaderTemplate>
<ContentTemplate>Goodbye!</ContentTemplate>
</asp:TabPanel>
</asp:TabContainer>
<cc1:ClosableTabPanelExtender ID="ClosableTabPanelExtender1" runat="server"
TargetControlID="TabPanel1" />
到目前为止,我在运行网站时收到以下错误:
The TargetControlID of 'ClosableTabPanelExtender1' is not valid. A control with ID 'TabPanel1' could not be found.
该错误让我认为 aTabPanel
无法扩展,所以我必须扩展aTabContainer
吗?
除了错误之外,我还可以使用一些方向,尤其是使用 Behavior 脚本。这对我来说是最难以捉摸的部分,尽管我知道它可能会包含我试图添加的大部分功能。我也不确定扩展器的其他部分如何与它一起工作。
我有 Ajax Toolkit 源代码,并查看了 Tab 控件的源代码,我部分理解了这些源代码。我还浏览了几个控制扩展器的示例,主要是Matt Berseth 的扩展器和 Dan Wahlin 的一个。