0

我编写了一个自定义用户控件,它返回一些用户特定的数据。要加载自定义用户控件,我使用以下代码行:

UserControl myUC = (UserControl).Load("~/customUserControl.ascx");

但是我怎样才能string user在用户控制里面访问myUC呢?

4

4 回答 4

1

假设您的自定义用户控件的名称是“MyUserControl”

试试这个代码:

MyUserControl myUC = (UserControl).Load("~/customUserControl.ascx") as MyUserControl;
string result = myUC.user;
于 2008-12-03T08:15:06.403 回答
1

让我们称您的用户控件为“Bob”

如果您从 Bob 中的 UserControl 继承,那么我想这样做是安全的:

Bob b = (Bob).Load("~/customUserControl.ascx");

对于用户部分,我无法真正遵循您想要做什么,是您创建“Bob”用户控件并且您想在“Bob”用户控件中设置属性还是类中的“用户”其他方式?

对于第一个,您应该在用户控件中创建一个属性。

class Bob : UserControl{
public string User { get; set;}
}

然后在创建“Bob”实例后设置它。

b.User = theuser;
于 2008-12-03T08:54:12.500 回答
0

您需要将加载的控件转换为实际类型并使用其公共属性:

MyUserControl myUCTyped = (MyUserControl)myUC;
myUCTyped.ThePublicProperty = "some value";
于 2008-12-03T08:14:59.553 回答
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 服务代码中创建 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?

于 2008-12-03T09:03:28.253 回答