0

我编写了一个自定义 ASP.NET 服务器控件。当我呈现控件时,我检查 this.Enabled 属性以确定是否应该将 disabled 属性添加到我的标签(下面的代码摘录)。除非我专门设置了 Enabled 标志,否则无论面板处于何种状态,此值都是 True。

output.AddAttribute(HtmlTextWriterAttribute.Type, "text");
if (!this.Enabled)
{
    output.AddAttribute(HtmlTextWriterAttribute.Disabled, "disabled");
}
output.AddAttribute(HtmlTextWriterAttribute.Value, this.DisplayName);
output.RenderBeginTag(HtmlTextWriterTag.Input);
output.RenderEndTag();

标准服务器控件(如文本框等)在这种情况下按预期运行并被禁用。

我必须实现什么模式才能检查控件是否实际上被禁用?您是否必须检查父级以查看它们中的任何一个是否是面板,然后查看它们是否已启用?如果是这样的话,似乎效率很低。

谢谢马克

4

1 回答 1

1

刚找到。

需要修改代码为:

output.AddAttribute(HtmlTextWriterAttribute.Type, "text");
if (!this.IsEnabled)
{
    output.AddAttribute(HtmlTextWriterAttribute.Disabled, "disabled");
}
output.AddAttribute(HtmlTextWriterAttribute.Value, this.DisplayName);
output.RenderBeginTag(HtmlTextWriterTag.Input);
output.RenderEndTag();
于 2013-01-25T05:33:15.970 回答