2014-09-30 77 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

相關問題