如果我在iframe中调用一个页面,一切正常,但每当加载iframe时它都会闪烁。为了避免闪烁,我在div中调用了aspx页面而不是iframe。
这是我如何在div中加载aspx页面
<script type="text/javascript">
$(function () {
setInterval(function () {
$('#div1').load('frmChatRequest.aspx', function () {
});
}, 10000);
});
</script>
但是我遇到了一个问题,就是我有网格视图控件,比如按钮字段,他们的事件没有触发,而且它发出了这个错误"The state information is invalid for this page and might be corrupted."
我该怎么办?
这是在div
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div id="divConversation"
style=" width: 101%; height:174px; overflow:auto; overflow-x:hidden">
<asp:GridView ID="gdvChatRequestRoom" style="background-color:ALICEBLUE;"
runat="server" AutoGenerateColumns="false" Width="358px" Height="57px" GridLines="None"
BorderStyle="None" BorderColor="Black"
OnRowCommand="gdvChatRequestRoom_RowCommand" >
<Columns>
......
...........
.............
这是错误
答案 0 :(得分:1)
我认为您将页面内容下载到div的问题。为此,最好使用IFrame。
修改的 为了避免在iframe内部出现闪烁,我可以建议将rmChatRequest.aspx的内容放在更新面板中并更新它而不是完全加载iframe。其中一个解决方案是您可以在rmChatRequest.aspx页面中添加Timer控件,该页面将更新页面内容(通过更新更新面板等)。因此,在这种情况下,您将更新mChatRequest.aspx页面的内容,并且回发按预期工作,因为它位于iFrame内。
注意:更理想的解决方案是使用SignalR每1秒执行一次实时更新然后池服务器。
答案 1 :(得分:1)
在设计页面(.aspx)中将EnableEventValidation设置为false
<%@ Page Title="Home Page" EnableEventValidation="false" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
答案 2 :(得分:0)
runat="server"
div1
Plaese检查是否是。如果存在,请将其删除并运行解决方案。
答案 3 :(得分:0)
<script type="text/javascript">
$(function () {
setInterval(function () {
$('#div1').load('frmChatRequest.aspx', function () {
type: "iframe",
width: 300,
height: 750,
scrolling: "no"
});
}, 10000);
});
</script>
添加我发现这是在此参考:"The state information is invalid for this page and might be corrupted"