0

我正在开发一个 ASP.NET 自定义控件,目前面临一些问题,例如在同一页面/表单 .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%"/>

第一个控件呈现良好,但第二个控件不呈现。我可以在萤火虫中看到没有添加第二个控件的 JS 初始化,这使得第二个控件已过时。那么,如何让它也为第二个控件添加初始化代码。

4

1 回答 1

0

解决了!!!

我需要ClientID作为字符串键RegisterClientScriptBlock()传入.

Page.ClientScript.RegisterStartupScript(this.GetType(), ClientID, strJS, true); 
于 2013-08-26T07:04:28.017 回答