1

由于我在使用用户控件时遇到的问题,我决定学习如何创建服务器控件。我希望能够为我的用户控件创建 JavaScript 函数,这样我就可以调用 userControl1.clientSideFunction(); 您实际上无法使用用户控件执行此操作,因为该函数只会作为 clientSideFunction(); 放入页面中;而实际上并没有附加到用户控件。有一些方法可以使用用户控件来完成此操作,但它并非旨在允许它。据我了解,服务器控件旨在实现这一点。我找不到太多关于它的信息,有人知道怎么做吗?这是我的控制的基本轮廓。

namespace ServerControl1
{
    public class Class1 : CompositeControl
    {
        private DevExpress.Web.ASPxEditors.ASPxButton btnTest;
        private DevExpress.Web.ASPxPopupControl.ASPxPopupControl popupTest;

        protected override void Render(HtmlTextWriter writer)
        {
            writer.Write("<h1>This is my control</h1>");      
        }

        protected override void CreateChildControls()
        {
            btnTest = new DevExpress.Web.ASPxEditors.ASPxButton();
            btnTest.Text = "wazzzup"; 

            popupTest = new DevExpress.Web.ASPxPopupControl.ASPxPopupControl();
            popupTest.Width = Unit.Pixel(500);
            popupTest.Height = Unit.Pixel(500);
            popupTest.Controls.Add(btnTest);
            popupTest.ShowOnPageLoad = true;
            Controls.Add(popupTest);                       
        }
    }
}
4

1 回答 1

0

也许这会有所帮助:

http://weblogs.asp.net/dwahlin/archive/2007/04/29/creating-custom-asp-net-server-controls-with-embedded-javascript.aspx

编辑:

您将需要创建具有您需要/想要的属性和功能的控件的客户端版本(嵌入式 javascript 类)。客户端 javascript 类可能应该有一组对子控件的引用,以便于访问。它还应该存储对客户端控件本身的引用。一种方法是创建客户端类的新实例,并引用控件和子控件列表作为参数。上面的链接将向您展示如何嵌入 javascript 类。

于 2012-07-17T15:02:25.077 回答