カスタムコントロールにExtenderを無理やり追加する

これの続きね、まとめはウェブリブログのほうでやるとしてコードの切れはし。

継承元が Panel などの Container 系コントロールだったら普通に Me.Controls.Add() すればいいんだけれどね。
ちょっと変えた→修正版2→修正版3


Private Sub カスタムコントロール_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
Dim _scriptManager As ScriptManager = ScriptManager.GetCurrent(Me.Page)
For Each script As ScriptReference In ScriptObjectBuilder.GetScriptReferences(GetType(FilteredTextBoxExtender))
_scriptManager.Scripts.Add(script)
Next
End Sub

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)

writer.Write("<script type='text/javascript'>")
writer.Write("Sys.Application.add_init(function() {")
writer.Write("$create(AjaxControlToolkit.FilteredTextBoxBehavior, {3}'FilterType':{0}, 'id':'{1}'{4}, null, null, $get('{2}'))", _
2, Me.ClientID & "_FilteredTextBoxExtender", Me.ClientID, "{", "}")
writer.Write("});")
writer.Write("</script>")
MyBase.Render(writer)

End Sub