1

我有一个自定义服务器控件,它在它添加的 aspx 页面上呈现一些 HTML。

    protected override void RenderContents(HtmlTextWriter output)
    {
        Text = GetHTMLContent();

        output.Write(Text);
    }

GetHTMLContent() 会返回一些 HTML,比如

<div id="panel" onMouseOver="hide"><table><tr><td>Something Here</td></tr></table></div>

我有一个 javascript 文件,它是该服务器控件中的嵌入资源。这个 javascript 文件包含一个函数,比如说

    function hide(){
         document.getElementById("panel").visible = false;
    }

我在这样的 aspx 页面中添加自定义控件

<cc1:CControl ID="Div" runat="server"></cc1:CControl>

现在当我在浏览器中打开时,HTML 内容渲染得很好,但是 javascript 需要工作。

我的问题是我们如何使嵌入自定义控件的javascript文件中的函数在将加载自定义控件的aspx页面上工作?

谢谢

4

2 回答 2

1

有几种方法。首先可以有一个OnClientHide="hide"属性,该属性定义了作为回调调用的方法的名称。您的控件可以在呈现期间将其传递给onmouseover客户端事件处理程序。

或者:让您的控件将 javascript 写入浏览器,如下所示:http: //msdn.microsoft.com/en-us/library/z9h4dk8y.aspx

编辑

另请查看此示例:http ://www.karpach.com/Custom-ASP-NET-server-control-with-embedded-resources.htm

于 2012-03-20T12:41:11.583 回答
0

除了 Brian Mains 所说的,你要隐藏的 javascript 是不正确的。它应该是:

function hide()
{
    document.getElementById("panel").style.display = "none";
    OR
    document.getElementById("panel").style.visibility = "hidden";
} 
于 2012-03-20T12:50:12.453 回答