2014-09-30 54 views
0

我想显示用户控件,它根据传递给它的值生成不同的数据集。用户控件的将数据传递给动态创建的ascx用户控件

号在运行时

  • 现在它在Page_Load中力打的ascx.cs

Default.aspx的

<%@ Register Src="~/UserControl/SquareEUA.ascx" TagName="Square" TagPrefix="EUA" %> 

<body> 
    <div id="divControls" runat="server"></div> 
</body> 

Default.aspx的被决定.cs

protected void Page_Load(object sender, EventArgs e) 
    { 
    string[] Property; 
    foreach (string sPropID in Property) 
    { 
SquareEUA userControl = (SquareEUA)Page.LoadControl("~/UserControl/SquareEUA.ascx"); 
     userControl.ID = "MyControl_" + sPropID.Trim(); 
     userControl.sCustID = CustomerID; 
     userControl.sCustPropID = sPropID.Trim(); 
     userControl.Visible = true; 
     divControls.Controls.Add(userControl); 
     userControl.Dispose(); 
    } 
    } 

SquareEUA.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SquareEUA.ascx.cs" Inherits="UserControl.SquareEUA" %> 
<div> 
    // Some HTML Markup 
</div> 

SquareEUA.ascx.cs

public partial class SquareEUA : System.Web.UI.UserControl 
{ 
public string sCustID { get; set; } 
public string sCustPropID { get; set; } 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     // Some Code  
     // Didnt Hit Breakpoint Here; 
    } 
}   

回答

0

你需要投你的用户控件作为实际的类SquareEUA访问类的属性

SquareEUA userControl = (SquareEUA)(Page.LoadControl("~/UserControl/SquareEUA.ascx")); 

应该做的伎俩(你应该添加一些错误处理,空检查等)

编辑:看来我错过了周围括号(页...

+0

这样我就可以访问'userControl.sCustID'并在default.aspx.cs中设置值? – Shaggy 2014-09-30 11:20:01

+0

试试看,但它应该可以工作 – fuchs777 2014-09-30 11:24:26

+0

不,它从UserControl获取HTML标记。但是为什么它没有触及'Page_Load'上的断点? – Shaggy 2014-09-30 12:08:25

相关问题