1

我決定學習如何創建服務器控件,因爲我在用戶控件時遇到了問題。我希望能夠爲我的用戶控件創建JavaScript函數,所以我可以調用userControl1.clientSideFunction();你實際上不能用用戶控件來做這件事,因爲這個函數只會作爲clientSideFunction()被放入頁面。而實際上並沒有附加到用戶控件上。有一些方法可以通過用戶控制來實現,但它並不是爲了支持它而設計的。根據我的理解,服務器控件旨在允許這樣做。我找不到關於它的很多信息,有誰知道如何做到這一點?這是我的控制的基本輪廓。服務器控件中JavaScript函數的範圍

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);      
     } 
    } 
} 

回答

0

也許這將幫助:

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

編輯:

您將需要創建控制的客戶端版本(嵌入的JavaScript類)具有的性質和功能你需要/想要。客戶端JavaScript類應該有一個對子控件引用的集合,以便於訪問。它還應該存儲對客戶端控件本身的引用。一種方法是創建一個客戶端類的新實例,並引用控件和一系列子控件作爲參數。上面的鏈接會告訴你如何嵌入JavaScript類。

+0

雖然這可能在理論上回答這個問題,但[這將是更可取的](http://meta.stackexchange.com/q/8259)在這裏包含答案的基本部分,並提供供參考的鏈接。 – Matt 2012-07-17 15:04:04