0

嘿伙计们看看这个...

<asp:TabContainer ID="jkhgjkgh" runat="server">
    <asp:TabPanel ID="jkkljhgh" runat="server" HeaderText="sdkl;fgjl;kgjdf">
        <ContentTemplate>
            <asp:Button ID="jhgkjgh" runat="server" Text="Button" onclick="Button1_Click" />
        </ContentTemplate>
    </asp:TabPanel>
    <asp:TabPanel ID="jkgh" runat="server" HeaderText="gjdkl;gjdf;g" Visible="false">
        <ContentTemplate>
            <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="dropDownSelect">
                <asp:ListItem Text="test" />
                <asp:ListItem Text="test" />
                <asp:ListItem Text="test" />
                <asp:ListItem Text="test" />
            </asp:DropDownList> 
        </ContentTemplate>
    </asp:TabPanel>

没什么疯狂的......只是一个带有几个面板的标签容器,第二个是隐藏的。

现在我们转到后面的代码......

    protected void Button1_Click(object sender, EventArgs e)
    {
        TabPanel p = new TabPanel();

        p.ContentTemplate = jkgh.ContentTemplate;

        jkhgjkgh.Tabs.Add(p);
    }

    protected void dropDownSelect(object sender, EventArgs e)
    {
        int i = 0;
    }

这就是一切都变得非常错误的地方......

我单击第一个选项卡面板上的按钮以创建一个新选项卡,该选项卡在我的隐藏面板中定义了模板,然后我转到该面板并更改下拉菜单中的选择...。

它会进行回发,但永远不会引发下拉事件....

有任何想法吗 ???

4

2 回答 2

1

问题是您无法动态复制隐藏的模板化选项卡面板并将新选项卡添加到集合中。显然,tabcontainer 控件在没有大量“hacking”的情况下不允许这样做。

我不完全确定为什么,但似乎 ITemplate 类型不能很好地克隆以进行事件处理。

于 2011-06-26T15:05:16.647 回答
0

我认为这可能是因为您的 TabContainer 没有将 AutoPostBack 设置为 true。

于 2011-06-09T14:43:22.997 回答