我编写了一个自定义用户控件,它返回一些用户特定的数据。要加载自定义用户控件,我使用以下代码行:
UserControl myUC = (UserControl).Load("~/customUserControl.ascx");
但是我怎样才能string user
在用户控制里面访问myUC
呢?
假设您的自定义用户控件的名称是“MyUserControl”
试试这个代码:
MyUserControl myUC = (UserControl).Load("~/customUserControl.ascx") as MyUserControl;
string result = myUC.user;
让我们称您的用户控件为“Bob”
如果您从 Bob 中的 UserControl 继承,那么我想这样做是安全的:
Bob b = (Bob).Load("~/customUserControl.ascx");
对于用户部分,我无法真正遵循您想要做什么,是您创建“Bob”用户控件并且您想在“Bob”用户控件中设置属性还是类中的“用户”其他方式?
对于第一个,您应该在用户控件中创建一个属性。
class Bob : UserControl{
public string User { get; set;}
}
然后在创建“Bob”实例后设置它。
b.User = theuser;
您需要将加载的控件转换为实际类型并使用其公共属性:
MyUserControl myUCTyped = (MyUserControl)myUC;
myUCTyped.ThePublicProperty = "some value";
感谢到目前为止。我的代码和上面写的完全一样:
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 服务代码中创建 poll 实例。我忘记了什么吗?
--> 忘记将Reference
.aspx 页面添加到动态加载用户控件的地方。它现在可以与普通的 .aspx 页面一起使用。示例代码可以在这里找到
Does anyone of you know how user controls can be added in Web Services aswell, because the Reference Attribute isn't available there?