无法在运行时在aspx页面中加载一个用户控件

本文关键字:用户 控件 一个 运行时 aspx 加载 | 更新日期: 2023-09-27 18:23:43

我在div的一个页面中有四种不同类型的用户控件one.ascx两个.ascx三个.ascx四个.ascx

像这个

<%@ Page Language="C#" MasterPageFile="~/MasterPages/template.master" AutoEventWireup="true"CodeFile="ViewCertificateMaster.aspx.cs" Inherits="Pages_ViewCertificateMaster" %>
<%@ Register Src="../Controls/one.ascx" TagPrefix="uc1" TagName="one" %>
<%@ Register Src="../Controls/two.ascx" TagPrefix="uc2" TagName="two" %>
<%@ Register Src="../Controls/three.ascx" TagPrefix="uc3" TagName="three" %>
<%@ Register Src="../Controls/four.ascx" TagPrefix="uc4" TagName="four" %>
  <asp:Content ID="Content1" ContentPlaceHolderID="phBody" Runat="Server">    
        ...... 
        ............
         ............
          some controls(button and dropdown list)
     <table border="0">
     <tr>
       <td colspan="3">
            <div class="content_grid" style="border:0px solid black;width:100%;">
              <div style="width: 100%; visibility:hidden;" runat="server" id="divViewMyCerts">
              <uc1:one runat="server" ID="one" />
                            <uc2:two runat="server" ID="two" />
                        <uc3:three runat="server" ID="three" />
                        <uc4:four runat="server" ID="four" />
                  </div>
                </div>
            </td>
       </tr>
  </table>

然后在后面的代码中

 protected void Page_Load(object sender, EventArgs e)
 {
    if (!IsPostBack)
    {
        UserControl myAOSUsrControl = Page.LoadControl("../Controls/one.ascx") as UserControl;
        divViewMyCerts.Controls.Add(myAOSUsrControl);
        divViewMyCerts.Visible = true;
    }
 }

我在页面加载中遇到问题。。。我只想加载一个(one.ascx)的用户控件

但我能够看到所有加载的用户控件,并且加载页面需要花费大量时间,因为一次加载四个用户控件。。。

这不是我想要的,我只想在页面加载时加载一个用户控件。。。

如何解决一次只加载一个用户控件的问题。。。。。有人知道怎么做吗,这对我来说将是非常有益的

非常感谢。。。

无法在运行时在aspx页面中加载一个用户控件

首先需要从页面中删除四个用户控件。还删除了visibility:hidden样式,您可以将属性visibili="false"添加到div中,因为您在代码中将其设置为true。然后使用您已经拥有的代码,但删除!IsPostBack

<%@ Page Language="C#" MasterPageFile="~/MasterPages/template.master" AutoEventWireup="true"CodeFile="ViewCertificateMaster.aspx.cs" Inherits="Pages_ViewCertificateMaster" %>
<asp:Content ID="Content1" ContentPlaceHolderID="phBody" Runat="Server">    
    ...... 
    ............
    ............
    some controls(button and dropdown list)
    <table border="0">
    <tr>
    <td colspan="3">
        <div class="content_grid" style="border:0px solid black;width:100%;">
            <div style="width: 100%;" runat="server" id="divViewMyCerts">
            </div>
            </div>
        </td>
    </tr>
</table>