隐藏iframe实现局部刷新

也考虑过使用ajax来实现,
但实际当中(不明是由于跨域问题还是服务器端没设置好,另台服务器对简繁英版本进行切换操作时)该方法失败,便改用隐藏iframe来实现:即把刷新的动作交给了隐藏页面去操作,返回的结果通过js传给当前页面。
 
代码如下:
mainPage.aspx:
<script type="text/javascript">
function likeit(reviewid,type)
{
    var hideID = "displayVote_" + reviewid;
 
    document.getElementById(hideID).innerHTML = "<b>Thank you for your vote!</b>";
   
    document.getElementById("ifAjax").src="ProfileReviewHidden.aspx?reviewid="+reviewid+"&type="+type+"&r=" + Math.random();
 
}
</script>
<body>
<form id="form1" runat="server">
<iframe id="ifAjax" name="ifAjax" style="display:none" src="about:blank"></iframe>
<div id="displayVote_<%#Eval("review_id") %>" style="height:20px;">
     <div class="sz_btn_style4" style="float:right;">
          <a href="javascript:;" onClick='likeit(<%#Eval("review_id")%>,"bad_qty")'>
          <span>Don't like it!</span></a>
     </div>
     <div class="sz_btn_style4" style="float:right;">
          <a href="javascript:;" onClick='likeit(<%#Eval("review_id")%>,"good_qty")'>
          <span>I like it!</span></a></div>
     </div>
                                                       
     <div style="clear:both; padding-top:4px;">
          <label id="good_qty_<%#Eval("review_id") %>"><%#Eval("good_qty") %></label>/
          <label id="sum_<%#Eval("review_id") %>" ><%#int.Parse(DataBinder.Eval(Container.DataItem, "good_qty").ToString()) + int.Parse(DataBinder.Eval(Container.DataItem, "bad_qty").ToString())%></label>
           &nbsp;like this post&nbsp;
          <label id="bad_qty_<%#Eval("review_id") %>" style="display:none;"><%#Eval("bad_qty") %></label>                    
     </div> 
</form>
</body>
 
 
hiddenPage.aspx:
<script type="text/javascript">
            function getResult()
            {
                var result = document.getElementById("hiddenValue").value;
                var type = document.getElementById("hiddenType").value;
                var reviewid = document.getElementById("hiddenViewID").value;
               
                parent.document.getElementById('reviewid').value = document.getElementById("hiddenValue").value;
               
                var parentid = type + "_" + reviewid;
                var parentsumid = "sum_" + reviewid;
               
                //alert(parentid);
                parent.document.getElementById(parentid).innerHTML = document.getElementById("hiddenValue").value;
                parent.document.getElementById(parentsumid).innerHTML = document.getElementById("qtySum").value;
               
            }
            window.onload = getResult;
    </script>
<body>
    <form id="form1" runat="server">
    <div>
            <input id="hiddenValue" type="text" runat="server" />
            <input id="hiddenType" type="text" runat="server" />
            <input id="hiddenViewID" type="text" runat="server" />
            <input id="qtySum" type="text" runat="server" />
    </div>
    </form>
</body>
 

hiddenPage.aspx.cs: 数据操作略

http://blog.163.com/dh_java@126/blog/static/34253108201031694542994/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值