如何在asp.net中将任何aspx页面作为用户控件?

时间:2011-08-19 09:03:05

标签: c# asp.net user-controls

我有一个名为myimage.aspx的页面,它创建随机验证码图像,

 <form id="form1" runat="server">
    <div>
    <%--<img src="MyImagePage.aspx">--%> //using normal page...this is working fine
   <ucImage:ucMyImage ID="myimage" runat="server" /> //using usercontrol this gives me image but following textboxes , buttons ans labels are disappears :(   
   <asp:TextBox id="CodeNumberTextBox" runat="server"></asp:TextBox>
   <asp:Button id="SubmitButton" runat="server" Text="Submit"></asp:Button><br>
   <asp:Label ID="lblMessage" runat="server" Text="CORRECT!" Visible="false"></asp:Label>
   </div>
   </form>

我在我的index.aspx页面上调用了这个页面,就像这个<img src="MyImageControl.ascx">一样。 但是我没有将aspx页面创建为usercontrol myimagecontrol.ascx 并将其放入index.aspx,如<ucImage:ucMyImage ID="myimage" runat="server" />,同时添加&lt;%@ Register%&gt;标签也是,但我只能查看图像验证码,而不是任何其他包含index.aspx页面的文本框或其他按钮, 请告诉我什么错了???

3 个答案:

答案 0 :(得分:0)

只需打开设计视图,然后将控件拖到要调用它的页面上 确保它处于设计视图中。

答案 1 :(得分:0)

从我的ASPX页面

<%@ Register TagName="uc" TagPrefix="uc1"  Src="~/WebUserControl.ascx"%>
<uc1:uc ID="uc" runat="server" />
<asp:Label ID="lbl" runat="server">Loaded after UC</asp:Label>

来自我的UserControl

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
<asp:Label ID="lbl" runat="server"></asp:Label>

我没有任何问题。我不明白为什么你的控件不会因为usercontrol而渲染。您的代码隐藏中必然存在干扰控件呈现的内容

答案 2 :(得分:-1)

嗨:)我认为在渲染中可能存在问题,我在这里发布了正在运行的代码

对于用户控件(ascx)

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUserControl1" %>
<p>
    <img alt="" src=""  runat="server" id="image"/> </p>
<asp:Button ID="Button1" runat="server" Text="Button" /><asp:LinkButton ID="LinkButton1"
    runat="server">LinkButton</asp:LinkButton>

对于AspX(注册用户控制)

<%@ Register src="WebUserControl1.ascx" tagname="WebUserControl1" tagprefix="uc1" %>

在Aspx中使用图像标签

<uc1:WebUserControl1 ID="WebUserControl11" runat="server" />
相关问题