有一个用户控件 - 带有“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.ascxParentPage.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 属性并为其设置值。
谢谢。
答案 0 :(得分:1)
尝试使用动态
dynamic u = (UserControl)ParentControl.FindControl("childcontrol");
u.firstname = "fawad";
Response.Write(u.firstname);