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