如何在 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 结果加载到第一个选项卡用户控件上。