我可以通过编程方式(服务器端)向页面添加ASP.NET AJAX Extentions吗?

时间:2008-10-09 12:24:43

标签: asp.net-ajax controls

在页面中,在load事件中,我动态创建控件以在页面上显示。这一切都正常。我遇到的麻烦是从AJAX控件工具包添加扩展器时,特别是我试图为按钮控件添加圆角。不会抛出任何错误,但AJAX扩展功能不会出现在显示的页面中。

有没有人对我没有做的事情有任何想法,或者它是否可能?

Dim container As HtmlGenericControl
Dim edit As Button
Dim editRoundedCorners As AjaxControlToolkit.RoundedCornersExtender 

For each item in items
            container = New HtmlGenericControl("div")
            container.ID = "container_" & item.code

            edit = New Button()
            edit.ID = "edit_" & item.code
            edit.Text = "Edit"
            edit.Style("padding") = "0 0 0 4px"
            edit.SkinID = "smallEditButton"

            editRoundedCorners = New AjaxControlToolkit.RoundedCornersExtender()
            editRoundedCorners.BorderColor = edit.BorderColor
            editRoundedCorners.ID = edit.ID & "_RoundedCorners"
            editRoundedCorners.Corners = AjaxControlToolkit.BoxCorners.All
            editRoundedCorners.Radius = 3
            editRoundedCorners.TargetControlID = edit.ID

            container.Controls.Add(editRoundedCorners)
            container.Controls.Add(edit)
            pageContainer.Controls.Add(container)
Next

(pageContainer是页面上的div)

3 个答案:

答案 0 :(得分:2)

您需要将“editRoundedCorners”添加到页面或容器,控件集合中,因此请尝试添加以下行:

Controls.Add(editRoundedCorners)

就在“将它们添加到页面控件集合”之前,因为您可能只是添加了编辑按钮,而两者都是必需的。

答案 1 :(得分:2)

我正在使用C#,所以我将使用该语法。

正如Rob所说,您需要将Extender添加到页面中。您可以通过以下方式执行此操作:

*parentCtrl*.Controls.Add(*extendername*);

或者

*controltype* *controlname* = (*controltype*)Page.LoadControl(typeof(*controltype*), new object[]{});

如果要将参数传递给控件,​​请将它们放在对象数组中。

答案 2 :(得分:1)

您不能将RoundedCornersExtender应用于输入TextBox或Buttons等元素。