TabPanel关闭按钮

时间:2014-03-20 14:40:43

标签: asp.net ajax

我有一个asp.net网站,其中我使用的是AJAX TabContainer。在这个容器中我有一个TabPanel。在这个面板里面,我想要一个关闭按钮,在点击时关闭(可见=假)这个面板。

样品:

<cc1:TabContainer ID="tbcMain" runat="server" Width="100%" ActiveTabIndex="0" CssClass="Tab">
  <cc1:TabPanel ID="tbp1" runat="server" Visible="false">
  <HeaderTemplate>
    <asp:Label ID="lbl_tbp1_Title" runat="server"></asp:Label>
    <asp:ImageButton ID="imb_tbp1_Close" runat="server" ImageUrl="~/Images/cross.png" />
  </HeaderTemplate>
  <ContentTemplate>
    some content
  </ContentTemplate>
</cc1:TabPanel>
</cc1:TabContainer>

按钮imb_tbp1_Close不会导致回发。我相信HeaderTamplate的整个区域都是可点击的,因此我的按钮留在后面(就像z-index of types)。

如何让我的按钮接收到点击并导致回发?

修改,我现在正在使用的解决方案:

首先,我可以在代码隐藏中使用实际的按钮事件,但ImageButton控件没有属性UseSubmitBehavior将其设置为false。所以我在Page_Load中处理了这个事件。

<cc1:TabPanel ID="tbpCust_1" runat="server" Visible="false">
  <HeaderTemplate>
    <asp:Label ID="lbl_UC_CUSTO_1_Title" runat="server"></asp:Label>
    <asp:ImageButton ID="imb_CUSTO_Close_1" runat="server" ImageUrl="~/Images/cross.png" OnClientClick="javascript:__doPostBack('imb_CUSTO_Close_1', '0')" />
  </HeaderTemplate>
  <ContentTemplate>
    <ucCUSTO:UC_CUSTO ID="UC_CUSTO_1" runat="server" />
  </ContentTemplate>
</cc1:TabPanel>

并在代码隐藏中:

 Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

        Dim evtTarg As String = Request.Form("__EVENTTARGET")
        Dim evtArg As String = Request.Form("__EVENTARGUMENT")

        If evtTarg = "imb_CUSTO_Close_1" Then
            UC_CUSTO_1.clear_fields()
            tbcStranke.Tabs(0).Visible = False

        ElseIf evtTarg = "imb_CUSTO_Close_2" Then
            UC_CUSTO_2.clear_fields()
            tbcStranke.Tabs(1).Visible = False

        End If

End Sub

0 个答案:

没有答案