【发布时间】:2010-07-20 16:53:14
【问题描述】:
我正在尝试编写一个 AJAX 控件扩展器,它可以修改 AJAX 控件工具包TabPanel,以便TabPanel 的标题在文本之后有一个图像,当单击该图像时,使用客户端隐藏选项卡标题 -脚本(没有回发)。我还希望能够指定一个 onClientClose 函数,该函数在关闭选项卡时也会调用。
我是 ASP 控件扩展器的新手,到目前为止,我已经按照 ASP.NET 站点上的 [tutorial](http://www.asp.net/ajax/tutorials/creating-a-custom-ajax-control-toolkit-control-extender-cs"Creating a Custom AJAX Control Toolkit Control Extender") 来创建自定义扩展器。我将我的扩展器称为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.
该错误让我认为 TabPanel 无法扩展,所以我是否必须改为扩展 TabContainer?
除了错误之外,我还可以使用一些方向,尤其是使用 Behavior 脚本。这对我来说是最难以捉摸的部分,尽管我知道它可能会包含我试图添加的大部分功能。我也不确定扩展器的其他部分如何与它一起工作。
我有 Ajax Toolkit 源代码,并查看了 Tab 控件的源代码,我部分理解。我还查看了几个控制扩展器的示例,主要是 Matt Berseth's extenders 和 Dan Wahlin 的一个。
【问题讨论】:
标签: c# ajaxcontroltoolkit tabcontainer tabpanel extender