【发布时间】:2009-02-17 17:05:39
【问题描述】:
我正在处理一些 ASP.NET 服务器控件,但我遇到了一个问题。 也许我监督一些事情,我不知道。
无论如何:
public string Name
{
get
{
String s = (String)ViewState["name"];
return ((s == null) ? String.Empty : s);
}
set
{
ViewState["name"] = value;
}
}
protected override void RenderContents(HtmlTextWriter output)
{
txt.ID = Name; // Name here exists
txt.Text = DateTime.Now.ToShortDateString();
txt.RenderControl(output);
output.Write(someName(someValue));
}
public string GetCalendarString(string date)
{
some code...
// Name property is null
}
'RenderContents' 使用属性 'Name' 来设置控件名称,然后调用 'someName' 函数和 'someName' 函数也使用属性 'Name',但是当我运行它时,函数 'someName' 中的属性 'Name'是空的,尽管在“RenderContents”中不是。
Gremlins,还是我错过了什么?
【问题讨论】:
-
你有完整的例子吗?
-
因此隔离相关的位。很有可能在隔离相关位时,您会发现问题。你肯定还没有给我们足够的信息。
-
虽然,我可以排除函数并发布 RenderContents 和属性。
-
这可能是渲染/页面生命周期问题。您需要确保在设置值时查找该值。
-
我正准备回答 Dave 所说的。幸运的是,我首先阅读了 cmets。戴夫,给他一个指向页面生命周期的链接,因为你是完全正确的。
标签: asp.net controls properties