自定义控件,用于检测将作为html输入字段呈现的第一个子项

时间:2011-12-09 13:04:29

标签: c# asp.net

我正在尝试开发一个自动检测第一个子控件的自定义控件,该控件将呈现为输入标签。我这样做是因为我想知道我是否应该在HTML中将我的关联标题渲染为标签或span元素(有点像asp:Label时给出AssociatedControlID。< / p>

我发现大部分将作为输入字段呈现的HtmlControls派生自基类HtmlInputControl。但是我没有找到System.Web.UI.WebControls命名空间中的控件的任何类。

所以我的问题是,我是否坚持用这样的反射挖掘受保护的属性“TagKey”:

var property = control.GetType()
    .GetProperty("TagKey", BindingFlags.NonPublic | BindingFlags.Instance);
var tag = (HtmlTextWriterTag)property.GetValue(control, null);

还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

也许您应该检查控件是否实现了IPostBackDataHandler接口?这将使您能够选择为服务器提供价值的控件。虽然它们可能不一定呈现为input。例如,DropDownList实现该接口,但呈现为select ...