首页 新闻 搜索 专区 学院

iframe的问题

0
悬赏园豆:30 [已解决问题] 解决于 2009-11-20 00:33

现在做一个项目,master page用的别人写好的,我们只需要在contentplaceholder里面加自己做的页面。现在我需要在contentplaceholder加一个dropdownlist、button和一个iframe。其中iframe页面包含gridview以及一些Label和一些TextBox实现增删改查。ddl的选项是24个字典表,所以iframe的页面也就是24个。现在我需要实现点击button,iframe动态改变,在网上查了下用js设置iframe的src和后台写代码设置Attibutes["src"]都不行。我在网上找了下也没找到正确的,难道这样不行?

wispzone的主页 wispzone | 初学一级 | 园豆:87
提问于:2009-11-16 00:25
< >
分享
最佳答案
0

用前台客户端的button去处理吧,直接调用前台JS脚本(onclick)

 

Code
收获园豆:20
死神的背影 | 小虾三级 |园豆:662 | 2009-11-16 10:06
不用iframe了整的麻烦~~
wispzone | 园豆:87 (初学一级) | 2009-11-20 00:33
其他回答(5)
0

iframe 需要在客户端进行连接跳转,也就是使用 js 来修改src实现的。

你可以先测试一下是否js的代码是否执行了。一般都不会出现问题的。

迷路中的路人甲 | 园豆:93 (初学一级) | 2009-11-16 07:50
0

使用master page 的話,對象的客戶端ID會改變的

_ctl0_ContentPlaceHolder1_IframeClient

所以JS獲取對象時候看是不是無法獲取正確ID

woody.wu | 园豆:3621 (老鸟四级) | 2009-11-16 08:24
0

引用迷路中的路人甲

iframe 需要在客户端进行连接跳转,也就是使用 js 来修改src实现的。

你可以先测试一下是否js的代码是否执行了。一般都不会出现问题的。

zhangpeng1008 | 园豆:283 (菜鸟二级) | 2009-11-16 09:42
0

上来就看到这个问题了,原本我也没做过类似的,所以就写一次,权作自己的练习,代码如下:

Site.Master代码:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="MultipleFileUpload.Site" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
       
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

WebForm1.aspx 页面代码

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="MultipleFileUpload.WebForm1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:DropDownList ID="ddl" runat="server">
    <asp:ListItem Value="1" Text="1"></asp:ListItem>
    <asp:ListItem Value="2" Text="2"></asp:ListItem>
    <asp:ListItem Value="3" Text="3"></asp:ListItem>
    <asp:ListItem Value="4" Text="4"></asp:ListItem>
    <asp:ListItem Value="5" Text="5"></asp:ListItem>
</asp:DropDownList>
<asp:Button ID="SubMit" Text="SubMit" runat="server" OnClientClick="return DynamicIframe();" />
<iframe id="Dynamic" name="Dynamic" width="800" height="600"></iframe>

<script type="text/javascript">
    function DynamicIframe() {
        var ddl = "<%=ddl.ClientID%>", selValue = "";
        ddl = document.getElementById(ddl);
        if (ddl) {
            for (var i = 0; i < ddl.options.length; i++) {
                if (ddl.options[i].selected) {
                    selValue = ddl.options[i].value;
                }
            }
        }
        var di = document.getElementById("Dynamic"), sr = "";
        if (selValue != "" && di) {
            switch (parseInt(selValue)) {
                case 1:
                    sr = "http://www.xapx.net/";
                    break;
                case 2:
                    sr = "http://www.xapx.net/CommonFiles/Show.aspx?ExId=66";
                    break;
                case 3:
                    sr = "http://www.xapx.net/CommonFiles/Show.aspx?ExId=64";
                    break;
                case 4:
                    sr = "http://www.xapx.net/CommonFiles/Show.aspx?ExId=61";
                    break;
                case 5:
                    sr = "http://www.xapx.net/CommonFiles/Show.aspx?ExId=62";
                    break;
                default:
                    sr = "http://www.xapx.net";
                    break;
            }
        }
        di.src = sr;
        return false;
    }
    window.onload = function() {
        DynamicIframe();
    }
</script>
</asp:Content>

 

看看是不是你想要的吧!至于我程序中使用的这个网站链接,是我自己的一个小站,针对每个sr,你可以根据你的程序需求来处理。

收获园豆:10
西越泽 | 园豆:10633 (专家六级) | 2009-11-16 10:53
0

引用woody.wu

使用master page 的話,對象的客戶端ID會改變的

_ctl0_ContentPlaceHolder1_IframeClient

所以JS獲取對象時候看是不是無法獲取正確ID

正解!

dege301 | 园豆:2825 (老鸟四级) | 2009-11-16 11:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册