C# 如何从.Net WebControl获取属性值?

C# 如何从.Net WebControl获取属性值?,c#,asp.net,.net,asp.net-webcontrol,C#,Asp.net,.net,Asp.net Webcontrol,例如,我使用以下方法创建了一个web控件: <dnwc:TestControl runat="server" CurrentSite="test"></dnwc:TestControl> 但该值为空 解决方案: 因为我不能发布答案,所以我将在这里添加它 我必须在TestControl.cs文件中声明该属性: public string CurrentSite { get { string s = (stri

例如,我使用以下方法创建了一个web控件:

<dnwc:TestControl runat="server" CurrentSite="test"></dnwc:TestControl>
但该值为空

解决方案:

因为我不能发布答案,所以我将在这里添加它

我必须在TestControl.cs文件中声明该属性:

public string CurrentSite
    {
        get
        {
            string s = (string)ViewState["CurrentSite"];
            return (s == null) ? "test2" : s;
        }
        set
        {
            ViewState["CurrentSite"] = value;

            //Retrieve the current site and set it as an attribute in the input tag
            inputTag.SetAttribute("data-current-site", value);
        }
    }
不幸的是,我只能在设置后访问该值。该值在创建实例后设置。所以在调用构造函数之后。最初我需要在构造函数调用的方法中设置该值,但现在就可以了。

1)为
网络控件提供一个ID

<dnwc:TestControl runat="server" CurrentSite="test" ID="testControl"></dnwc:TestControl>
2) 将
控件
强制转换为
测试控件
,并获取
当前站点
属性值

string currentSite = ((TestControl)webcontrol).CurrentSite;

“this”指的是页面控件…@IrishChieftain:
指的是对象的当前实例。根据问题,该代码位于
TestControl.cs
中,这可能不是
页面的对象。我误读了,谢谢更正David:)解决方案2它是最好的!
Control webcontrol = FindControl("testControl");
string currentSite = ((TestControl)webcontrol).CurrentSite;