我有一个带有属性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';
我该怎么做?
答案 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" ... />
因此我们可以访问该元素并更改链接,如:
$('#hyperlink_holder a').attr("href", "http://newurl");
此外,请注意,您在ASP.NET中为项目提供的ID不一定是将在HTML中的id元素中呈现的ID;它取而代之的是一些id的串联;因此,尽可能使用基于非runat =“server”控件的选择器,或者将UserControl的ClientID传递给客户端,以便在绝对必要时用于选择。