[英]ASP.NET : How to load user control from database and send parameter to it?
我有一個包含用戶控件名稱和頁面位置的表。 在頁面加載中,每個位置的所有面板都加載一個用戶控件。
我的位置是這樣的:
這是我的代碼,用於從數據庫中加載用戶控件名稱並將其設置為該圖像的位置,但是我想向每個用戶控件發送參數,但是如何呢?
private void loadUCposition()
{
string sql = "select ucname,positionid,StringParameter from Position p inner join modulename mn on p.modulid=mn.ucid" +
"";
DataTable dt = ADO.setDg_DataTable(sql);
foreach (DataRow row in dt.Rows)
{
string pos = row[1].ToString();
string ucs = row[0].ToString();
Panel p = this.Master.FindControl("ContentPlaceHolder1").FindControl("p"+pos) as Panel;
UserControl uc = new UserControl();
if (ucs.IndexOf(".ascx") > 0)
{
uc = this.LoadControl(ucs) as UserControl;
}
else
{
uc = this.LoadControl(ucs + ".ascx") as UserControl;
}
uc = this.LoadControl(ucs) as UserControl;
p.Controls.Add(uc);
}
}
當您指的是為用戶控件設置參數時,我想您的意思是在標記中設置值。
<myUserControl parameter1="1" parameter2="2" />
上面的語法只是包裝。 myUserControl是C#類,這些參數是該類的變量。 (盡管是自動生成的類)
然后,要修改用戶控件實例的位置,就是訪問其變量並進行更改。
在您的示例中:
uc = this.LoadControl(ucs) as UserControl;
p.Controls.Add(uc);
// Modify new instance's public member variables
uc.positionX = 123123;
uc.parameter1 = 1;
uc.parameter2 = 2;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.