如何从javascript控制usercontrol

时间:2009-12-07 09:04:20

标签: asp.net javascript user-controls

我有一个带有属性targetUrl的usercontrol。我将此用户控件添加到页面并从此页面编写targetUrl属性,如下所示:

<PBG:Modal ID="Modal1"
           runat="server"
           Height="180"
           Width="500"
           src="pop_adres_giris.aspx"/>

这工作正常,但我想从javascript更改targetUrl属性。我不能这样做。我写下面的代码,但它不起作用。

var frm = document.getElementById('Modal1');            
frm.targetUrl = 'pop_adres_giris.aspx';

我该怎么做?

1 个答案:

答案 0 :(得分:3)

在客户端生成HTML的UserControl对象无法作为处理服务器端调用时可用的富对象访问。

根据UserControl的不同,您需要使用不同的方法来获取它并设置“targetUrl”。

此外,为了方便您访问DOM中的元素,您可能需要考虑使用诸如jQuery或原型之类的库

一旦你声明了你的控件,例如,如果你使用的是asp:超链接控件:

<div id="hyperlink_holder">
  <asp:Hyperlink ... NavigateUrl="http://someurl" />
</div>

你知道asp:Hyperlink会生成像<a href="http://someurl" ... />

这样的html

因此我们可以访问该元素并更改链接,如:

$('#hyperlink_holder a').attr("href", "http://newurl");

此外,请注意,您在ASP.NET中为项目提供的ID不一定是将在HTML中的id元素中呈现的ID;它取而代之的是一些id的串联;因此,尽可能使用基于非runat =“server”控件的选择器,或者将UserControl的ClientID传递给客户端,以便在绝对必要时用于选择。