我编写了一个自定义用户控件,它返回一些用户特定的数据。 要加载自定义用户控件,请使用以下代码行:
UserControl myUC = (UserControl).Load("~/customUserControl.ascx");
但是如何在用户控件string user
中访问myUC
?
答案 0 :(得分:1)
假设您的自定义用户控件的名称是“MyUserControl”
试试这段代码:
MyUserControl myUC = (UserControl).Load("~/customUserControl.ascx") as MyUserControl;
string result = myUC.user;
答案 1 :(得分:1)
让我们称你的用户控制“Bob”
如果你继承Bob中的UserControl,那么我想这样做是安全的:
Bob b = (Bob).Load("~/customUserControl.ascx");
对于用户部分,我无法真正按照您的要求进行操作,类中的“用户”是您创建“Bob”用户控件还是要在“Bob”用户控件中设置属性或是相反吗?
对于第一个,您应该在usercontrol中创建一个属性。
class Bob : UserControl{
public string User { get; set;}
}
然后在创建“Bob”实例后设置它。
b.User = theuser;
答案 2 :(得分:0)
您需要将加载的控件强制转换为实际类型并使用其公共属性:
MyUserControl myUCTyped = (MyUserControl)myUC;
myUCTyped.ThePublicProperty = "some value";
答案 3 :(得分:0)
到目前为止,谢谢。我的代码与上面的代码完全相同:
public partial class todo : System.Web.UI.UserControl
{
private string mysecondteststring;
public string setValue
{
get
{
return mysecondteststring;
}
set
{
mysecondteststring = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
// my code
}
}
但是我无法在我的Web服务代码中创建一个轮询实例。我忘了什么吗?
- >忘记将Reference
添加到动态加载用户控件的.aspx页面。它正在使用普通的.aspx页面。
可以找到示例代码here
您是否有人知道如何在Web服务中添加用户控件,因为参考属性在那里不可用?