[英]Pass variables and access methods of User Control from CodeBehind
所以我在default.aspx.cs中有一個函數renderWidget()
。 這樣做的想法是將用戶控件添加到頁面。
public void renderWidget(string data) {
Control ctrl = Page.LoadControl("/widgets/widget.ascx");
dataPanel.Controls.Add(ctrl);
}
這一切都很好,可愛多變。 現在在另一端,在用戶控件中,我在widget.ascx.cs中包含以下代碼:
public class WidgetControl : System.Web.UI.UserControl
{
public string testString = "";
public void test() {
Response.Write("test");
}
}
當我嘗試訪問用戶控件中的任何一個屬性時,就會出現問題。 當我嘗試將ctrl.test()
或ctrl.testString = "test"
到default.aspx.cs時,出現錯誤“'System.Web.UI.Control'不包含'test'的定義”。 我覺得這里可能缺少一些非常基本的東西。
任何幫助表示贊賞,謝謝!
您需要將實例轉換為WidgetControl
。
您必須強制轉換為正確的類型:
WidgetControl widget = (WidgetControl)ctrl;
widget.testString = "Foo";
widget.test();
LoadControl
返回Control
而不是UserControl
的實際類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.