代码之家  ›  专栏  ›  技术社区  ›  StingyJack

是否可以通过编程方式(服务器端)将ASP.NET AJAX扩展添加到页面?

  •  0
  • StingyJack  · 技术社区  · 16 年前

    在页面中,在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 回复  |  直到 16 年前
        1
  •  2
  •   Rob    16 年前

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

    Controls.Add(editRoundedCorners)
    

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

        2
  •  2
  •   Compulsion    16 年前

    正如Rob所说,您需要将扩展器添加到页面中。您可以通过以下方式完成此操作:

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

    或者,或者

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

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

        3
  •  1
  •   troyappeldorn    16 年前