从列表框中更改iframe源

时间:2013-04-29 03:39:01

标签: c# asp.net

我想从列表框中更改iframe的来源。这是我的代码。

<iframe id="iframeID" frameborder="0" width="100%" height="300px"></iframe>
   <asp:Button ID="btnView" runat="server" Text="Pop Up HTML Preview" 
               OnClientClick="ShowPopUp();" />

 ShowPopUp = function() {
      var x = document.getElementById('<%=ListBox1.ClientID %>');
      var val = x.options[x.selectedIndex].Value;
      document.getElementById("iframeID").src = val;

但是错误说我有一个未定义的iframe 怎么了?
请帮我。谢谢:))

3 个答案:

答案 0 :(得分:0)

您可以使用jquery更改源代码:

$("#content").attr('src', 'http://your new source here');

因此,当列表框中的选定项目发生更改时,您可以调用此方法。

答案 1 :(得分:0)

使用value,JavaScript区分大小写

 var val = x.options[x.selectedIndex].value;

并更改OnClientClick,如下所示

<asp:Button ID="btnView" runat="server" Text="Pop Up HTML Preview" 
OnClientClick="ShowPopUp(); return false;" />

按钮点击事件向服务器发送完整的回发请求。所以你的Ifram在回发后会有默认的src值。这里你没有给出默认的src值。所以点击按钮后什么都没有。添加return false按钮后,单击后不会回发。

答案 2 :(得分:0)

如果它没有从C#做任何事情,请创建一个普通按钮 - ASP倾向于为其控件的ID添加花哨的前缀(如ContentPlaceHolder1_btnView),并且.ID不能以这种方式访问​​它们。 1}}来自C#代码。因此,您可以通过浏览器的源代码检查器清除这些ID(如果您将它们移动到其他地方就可以更改),或者使用

<input type="button" ID="btnView" Value="Pop Up HTML Preview" 
               OnClick="ShowPopUp();" />

(相应地修改你的JS)