2013-08-22 51 views
0

我正在使用ASP.NET自定義控件,並且當前正面臨着一些問題,如Using a custom control more than once on the same page/form .net中的問題。頁面中的同一個自定義控件的兩個實例,只有一個正在呈現

我在這裏看到的區別是,我的控件有JavaScript和圖像嵌入在項目中,並將編譯爲一個單一的DLL。

在命名空間CustomControl我:

public class myControl: TextBox 
{ 
    protected override void OnPreRender(EventArgs e) 
    { 
     string strJS = "//my Javascript initialization codes"; 
     base.OnPreRender(e); 
     CustomControl.myControl.Include_ScriptFile(Page.ClientScript); // Refers external JS file added as a web resource in the AssemblyInfo file 
     Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CreateControl", strJS, true); // add the JS initialization code for the control on the page 
    } 
} 

我的ASPX頁面的其他項目代碼(這兩個項目已經引用)

<cc1:myControl ID="cControl1" runat="server" Width="100%"/> 
<cc1:myControl ID="cControl2" runat="server" Width="100%"/> 

第一控件呈現不錯,但第二次卻不。我可以在firebug中看到第二個控件的JS初始化沒有被添加,並且使第二個控件過時。那麼,我如何讓它爲第二個控件添加init代碼。

回答

0

解決了!!!

我需要通過ClientID作爲字符串密鑰RegisterClientScriptBlock()

Page.ClientScript.RegisterStartupScript(this.GetType(), ClientID, strJS, true); 
相關問題