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

我可以添加ASP吗。NET AJAX以编程方式扩展到页面(服务器端)?

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

    在页面中,在加载事件上,我动态创建控件以在页面上显示。这一切都正常工作。我遇到的麻烦是在从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 回复  |  直到 17 年前
        1
  •  2
  •   Rob    17 年前

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

    Controls.Add(editRoundedCorners)
    

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

        2
  •  2
  •   Compulsion    17 年前

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

    正如Rob所说,您需要将扩展器添加到页面中。您可以通过以下方式做到这一点:

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

    或者,作为另一种选择

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

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

        3
  •  1
  •   troyappeldorn    17 年前

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