2010-06-24 62 views
1

我想知道如果有人可以幫助我這個。我有三個TabPanels取決於哪個選項卡被點擊我想調用一個不同的c#函數來顯示不同的內容。我知道我可以在頁面加載時運行所有的功能,但這看起來很麻煩。我確信有一種方法可以做到這一點,但我沒有多少看。有可能我從錯誤的角度思考這個問題,所以請讓我知道,如果你能想到一個更好的方法來做到這一點。asp.net TabPanel調用後面代碼中的代碼#

任何幫助將不勝感激!

例ASP.net

<ajaxToolkit:TabContainer ID="tabParameters" AutoPostBack="true" Width="100%" runat="server" ActiveTabIndex="0"> 
<ajaxToolkit:TabPanel ID="tabDetails" OnClientClick="Load_Details()" HeaderText="Details" runat="server"> 

回答

1

我就窩在 「功能」 爲WebUserControls並把它們放到不同的TabPanels。他們對Page.Load沒有任何幫助,並且是隱形的。定義一個函數「BindData」來完成所有DataBinding /耗時的工作。當用戶更改ActiveTab(或默認活動標籤)時,使該UserControl可見並調用其BindData函數。

您需要圍繞UserControl的UpdatePanels(Updatemode = Conditional)和具有Eventname = ActiveTabChanged的Async-Postback-Trigger,以便只重新加載此面板。

例如在ASPX(MD_Location是用戶控件,由於篇幅所限,我只貼一個,但你必須想象他們中的很多):

<act:TabContainer ID="TabContainer1" runat="server" AutoPostBack="true" > 
    <act:TabPanel ID="TabLocation" runat="server" HeaderText="Locations"> 
     <ContentTemplate> 
      <asp:UpdatePanel ID="UpdLocation" runat="server" UpdateMode="Conditional"> 
       <ContentTemplate> 
        <MD:MD_Location id="MD_Location" runat="server" Visible="false" /> 
       </ContentTemplate> 
       <Triggers> 
        <asp:AsyncPostBackTrigger ControlID="TabContainer1" EventName="ActiveTabChanged" /> 
       </Triggers> 
      </asp:UpdatePanel> 
     </ContentTemplate> 
     </act:TabPanel> 

,並在代碼隱藏(對不起,只有VB.Net可用的,我希望你的想法):

Private Sub TabContainer1_ActiveTabChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabContainer1.ActiveTabChanged 
     If Me.TabContainer1.ActiveTab Is Me.TabLocation Then 
      Me.MasterDataType = "Locations" 
     End If 
     switchControlVisibility() 
    End Sub 

    Private Sub switchControlVisibility() 
     Select Case Me.MasterDataType.ToLower 
      Case "locations" 
       Me.MD_Location.Visible = True 
       Me.Lblheader2.Text = "Locations" 
       UpdHeader.Update() 
       Me.MD_Location.BindData() '<---- do time-consuming stuff 
       Me.UpdLocation.Update() 

    End Sub 

相關問題