0
我正在尝试在ASP.NET复合控件中添加FilteredTextBoxExtender,但我无法使其工作。以编程方式在复合控件中添加FilteredTextBoxExtender
我有重写CreateChildControls方法中下面的代码:
var textbox = new TextBox { ID = string.Format("{0}_textbox", ID);
var filteredTextBoxExtender = new FilteredTextBoxExtender { ID = string.Format("{0}_filter", ID), TargetControlID = textbox.ID, FilterType = FilterTypes.Numbers };
Controls.Add(textbox);
Controls.Add(filteredTextBoxExtender);
不知何故,它看起来像时,我认为我的测试页面的源代码是正确添加,但不会触发过滤
Sys.Application.add_init(function() {
$create(AjaxControlToolkit.FilteredTextBoxBehavior, {"FilterType":2,"id":"ctl00_testTextBox_testTextBox_filter"}, null, null, $get("ctl00_testTextBox_testTextBox_textBox"));
});
...
<input id="ctl00_testTextBox" name="ctl00$testTextBox$testTextBox_textBox" type="text" value="" id="ctl00_testTextBox_testTextBox_textBox" />
任何想法在这里发生了什么,以及如何让它启动过滤?
编辑: 我缩小了它的范围,以动态选择要渲染的控件。该FilteredTextBoxExtender工作,如果我明确地呈现每个孩子的控制,但如果我不呈现在复合控件的子控件的一个(Label控件)
谢谢,但是INamingContainer是多余的,因为我的控件已经继承自CompositeControl。 我已经编辑了我的问题,提供了自发布后发现的更多信息 – 2009-12-08 12:11:48
是的,'CompositeControl'已经实现了'INamingContainer'。我要编辑我的帖子。但是,我无法实现您问题的更新部分。 – 2009-12-08 15:11:07
不记得问题在这里,所以我只是要关闭它。无论如何,感谢您的帮助 – 2010-12-03 12:18:24