在aspx页面

时间:2015-05-12 04:17:18

标签: asp.net user-controls

有一个用户控件 - 带有“FirstName”属性的ChildUC.ascx

ChildUC.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ChildUC.ascx.cs" Inherits="SampleDevExpress14._2.UserControls.ChildUC" %>
<asp:TextBox runat="server" ID="txtName"></asp:TextBox>
<asp:Button runat="server" ID="btnClick" Text="Click" OnClick="btnClick_Click"/>

ChildUC.ascx.cs - 这得到了一个属性 FirstName

public partial class ChildUC : System.Web.UI.UserControl
    {
        public string FirstName { get; set; }
    }

另一个用户控件中使用的 ChildUC.ascx 用户控件 ParentUC.ascx -

ParentUC.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ParentUC.ascx.cs" Inherits="SampleDevExpress14._2.UserControls.ParentUC" %>
<%@ Register src="ChildUC.ascx" tagPrefix="uc1" tagName="ChildUC" %>

<uc1:ChildUC runat="server" ID="ucChildUC"/>

ParentPage.aspx

中使用的 ParentUC.ascx

ParentPage.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ParentPage.aspx.cs" Inherits="SampleDevExpress14._2.UserControls.ParentPage" %>
<%@Register src="ParentUC.ascx" tagPrefix="uc1" tagName="ParentUC" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
    <form id="form1" runat="server">
    <div>
        <uc1:ParentUC runat="server" ID="ucParentUC"/>    
    </div>
    </form>
</body>
</html>

ParentPage.aspx.cs

protected void Page_Load(object sender, EventArgs e)
        {
            UserControl ucChild = (UserControl)ucParentUC.FindControl("ucChildUC");
            TextBox txtNameOfChildUC = (TextBox)ucChild.FindControl("txtName");
            txtNameOfChildUC.Text = "From Parent Page";
        }

我能够在 ParentPage.aspx 中找到 ChildUC.ascx 文本框控件,我在上面的 Page_Load事件中显示

但是如何在 ParentPage.aspx 中找到 ChildUC.ascx FirstName 属性并为其设置值。

谢谢。

1 个答案:

答案 0 :(得分:1)

尝试使用动态

    dynamic u = (UserControl)ParentControl.FindControl("childcontrol");
    u.firstname = "fawad";
    Response.Write(u.firstname);