C# 从列表框更改iframe源
我想从列表框更改iframe的源。这是我的密码C# 从列表框更改iframe源,c#,asp.net,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 =
<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;
ShowPopUp=函数(){
var x=document.getElementById(“”);
var val=x.options[x.selectedIndex].Value;
document.getElementById(“iframeID”).src=val;
但错误显示我有一个未定义的iframe。怎么了?
请帮助我。谢谢:)您可以使用jquery更改源代码:
$(“#内容”).attr('src','http://your 此处有新的源代码“;
因此,当列表框中的所选项目发生更改时,您可以调用此方法。使用
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。因此,单击按钮后将不会得到任何结果。添加
返回false
后,按钮单击将不会回发。如果它没有从C#中执行任何操作,请拒绝rmal button-ASP倾向于在其控件ID中添加花哨的前缀(如ContentPlaceholder 1\u btnView
),而这些前缀不能通过C代码中的.ID
进行访问。因此,您可以通过浏览器的源代码检查器chceck这些ID(如果将它们移动到其他地方,这些ID可以更改),或者使用
<input type="button" ID="btnView" Value="Pop Up HTML Preview"
OnClick="ShowPopUp();" />
(相应地修改您的JS)可能您在iframe中缺少
runat=server
,请尝试这样做
您应该使用value
而不是var val=x.options[x.selectedIndex]中的value
.Value;
@fardjad谢谢。我忘了ASP.Net是多么区分大小写。将jQuery放在任何地方都不是一个解决方案,而是一个解决方案workaround@PabloLemurr但是为什么不在这段代码中使用它呢?另一个选项是调用asp方法,然后你必须进行回发或使用更新面板。我认为jquery提供了一个简单得多的解决方案将不起作用,因为在大多数情况下,ASP将更改自己的ID,正如我在文章中所解释的,此外,如果没有包含jQuery库,那么仅为执行此单一任务加载它是没有意义的,我同意,但您仍然可以使用ClientId或CSSClass:)此外,这是一个很好的例子;)