C# 如何从.Net WebControl获取属性值?
例如,我使用以下方法创建了一个web控件: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
<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;