0

如何在 aspx 页面中多次使用相同的用户控件并在选项卡单击时加载用户控件。

我已经定义了一个用户控件(UDTControl.ascx)并在每个选项卡面板中声明了它。在选项卡单击时,基于选项卡索引,我将选项卡名称传递给 ascx 函数并调用 sp 以加载表中的数据。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="temp.aspx.cs" Inherits="WebUI.temp" %>
<%@ Register Src="Shared/UDTControl.ascx" TagName="UDTControl" TagPrefix="UserControl" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<asp:Content ID="Content1" ContentPlaceHolderID="PublicContent" runat="server">
  <script type="text/javascript">
       function ActiveTabChanged(sender, e) {
           var ActiveIndex = sender.get_activeTabIndex();
           if (ActiveIndex == 0) {
               UDTControlFuncAscx("abc");
           }
           if (ActiveIndex == 1) {
               UDTControlFuncAscx("xyz");
           }
           if (ActiveIndex == 2) {
               UDTControlFuncAscx("mno");
           }
       }
 </script>
  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
      <cc1:TabContainer ID="DashboardContainer" runat="server"OnClientActiveTabChanged="ActiveTabChanged" >
             <cc1:TabPanel ID="TabPanel1" runat="server" HeaderText="abc">
                 <UserControl:UDTControl ID="id1" runat="server"/>
             </cc1:TabPanel>
             <cc1:TabPanel ID="TabPanel2" runat="server" HeaderText="xyz">>
                   <UserControl:UDTControl ID="id2" runat="server"/>
             </cc1:TabPanel>
             <cc1:TabPanel ID="TabPanel3" runat="server" HeaderText="mno">>
                   <UserControl:UDTControl ID="id3" runat="server"/>
              </cc1:TabPanel>                
     </ContentTemplate>
</asp:UpdatePanel>
</asp:Content>

以下是我的 ascx 代码

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UDTControl.ascx.cs" Inherits="WebUI.Shared.UDTControl" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>

<%@ Register Assembly="WebUI" TagPrefix='SFX' Namespace='WebUI.Shared' %>

 <script type="text/javascript">
     function DashboardFuncAscx(ActiveTab) {
         if (ActiveTab == "abc") {
         //call abc sp using page method and load data on table
         }
         if (ActiveTab == "xyz") {
             //call xyz sp and load on table
         }
     }
 </script>

<asp:UpdatePanel ID="DashboardPanel" runat="server">
    <ContentTemplate>
         <asp:Panel ID="Dashboard1" runat="server">
             <table id="tableid" > </table>
        </asp:Panel>
    </ContentTemplate>          
</asp:UpdatePanel>

目前,我面临上述逻辑的问题。这对于第一个选项卡工作正常,但是当我单击第二个选项卡时,SP 被触发并且数据也被获取,但结果未显示 bcz 结果加载到第一个选项卡用户控件上。

4

0 回答 0