代码之家  ›  专栏  ›  技术社区  ›  Ralph Lavelle

如何在动态添加的用户控件中执行javascript

  •  0
  • Ralph Lavelle  · 技术社区  · 16 年前

    我在更新面板中有一个缩略图的网格视图,在每一行中都有可单击的图标,每一行都将一个包含一个小谷歌地图的用户控件加载到相关行中。其想法是用户可以(通过点击地图)在网格视图中标记任何照片。

    在map用户控件中,有一些javascript正在初始化映射:

    function initializeMap() {
        if (GBrowserIsCompatible()) {
            var map = new GMap2(document.getElementById('Map'), {size: new
    GSize(336, 200)});
            // set the map controls, set the centre, etc.
        }
    }
    

    问题是:我不知道怎么打电话给 initializeMap() 方法。因为它是动态添加到页面的,所以任何试图通过 "onClientClick=initializeMap()" 例如,给出一个JS错误,说方法没有定义。

    我试过了

    ClientScript.RegisterStartupScript(this.GetType(), "initializeMap", "<script type=\"text/javascript\">alert('Here'); initializeMap();</script>");
    

    但我也不认为我和那个人的关系是正确的。

    1 回复  |  直到 16 年前
        1
  •  0
  •   Naeem Sarfraz    16 年前

    你应该使用 ScriptManager 要在包含updatepanel的地方发出javascript,请执行以下操作:

    ScriptManager.RegisterStartupScript(this, this.GetType(), "initializeMap", "initializeMap();", true);
    
    推荐文章