2010-01-30 60 views
0

我在UpdatePanel中有一个GridView缩略图照片,每行都有可点击的图标,每个图标都会将包含小Google Map的用户控件加载到相关行中。这个想法是,用户可以通过点击地图来标记GridView中的任何照片。如何在动态添加的用户控件中执行javascript

在地图用户控制,有一些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>"); 

,但我不认为我是在正确的轨道与一个在任。

+0

是全包的更新面板中的用户控制的? – 2010-01-30 08:20:46

+0

是的,整个GridView被包装在UpdatePanel中,并且用户控件被添加到GridView的一行 – 2010-01-30 08:39:47

回答

0

你应该使用ScriptManager发出您的JavaScript,其中有一个UpdatePanel参与,像这样:

ScriptManager.RegisterStartupScript(this, this.GetType(), "initializeMap", "initializeMap();", true); 
+0

感谢Naaem,这就是我最终做的。 – 2010-02-04 09:17:10