我编写了一个自定义的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();
标准服务器控件(如文本框等)在此方案中的行为与预期相同,并且已禁用。
为了能够检查控件是否实际被禁用,我必须实现的模式是什么?您是否必须检查父母以查看他们中的任何一个是否是Panel,然后查看它们是否已启用?如果是这种情况,似乎效率非常低。
由于 标记
答案 0 :(得分: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();