1

ユーザー コントロールに問題があったため、サーバー コントロールの作成方法を学ぶことにしました。userControl1.clientSideFunction(); を呼び出せるように、ユーザー コントロール用の JavaScript 関数を作成できるようにしたかったのです。関数は 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 クラスには、簡単にアクセスできるように、おそらく子コントロールへの参照のコレクションが必要です。また、クライアント側コントロール自体への参照も格納する必要があります。これを行う 1 つの方法は、コントロールへの参照とパラメーターとしての子コントロールのリストを使用して、クライアント側クラスの新しいインスタンスを作成することです。上記のリンクは、javascript クラスを埋め込む方法を示しています。

于 2012-07-17T15:02:25.077 に答える