一个很简单的页面,前台代码如下:<BODY>
<form id="Form1" method="post" runat="server">
<table class="table" cellSpacing="0" cellPadding="0" width="100%" bgColor="#7bb2f7" border="0">
<tr>
<td align="left" bgColor="#ffffff">
<div id="DivReuslt" align="center" runat="server">
</div>
</td>
</tr>
<tr>
<td background="<%=ImageUrl%>index_cont_table_bt_bg.gif" height="5"> </td>
</tr>
<tr>
<td><asp:imagebutton id="BtnQuery" runat="server" OnClientClick="return ValidateInput();" OnClick="BtnQuery_Click" ToolTip="生成报表" ImageUrl="~/App_Themes/Default/Images/button_maths.gif"></asp:imagebutton></td>
</tr>
</table>
</form>
</BODY>
在后台的BtnQuery_Click事件里,动态生成一个table,然后
最后为DIV设置内容: StringBuilder builder = new StringBuilder();
builder.Append("<table id='TbExcel'>");
..............生成table内容操作,在此省略了
builder.Append("</table>");
DivReuslt.InnerHtml=builder.ToString();
基本上没有其它操作,就是这样一个生成报表table的页面,部署到服务器后,在有的电脑上无论用IE6,IE7,IE8都正常的,就是不管怎么折腾都正常。。但是在有的电脑上如果是在Frame中在父窗口内打开,就显示“Internet Explorer无法打开站点,已终止操作”。。如果在新的窗口打开就正常。。这个问题真的太奇怪了,真的不知道程序哪里有问题,因为这个页面很简单啊。。 然后,最后在网上看了有人说是javascript种如果document的state没有complate的时候,用InnerHtml就是报这个错误,于是我改用Javascript的方式在前台判断,当Document的ReadyState Complete的时候,我再设置DivReuslt.InnerHtml的属性,这次在所有电脑上不报错了。我的疑问是,这个解决的方法好像和我的问题没关系啊,我的DivReuslt.InnerHtml=builder.ToString();是在后台赋值的。。根据ASp.net的页面生存周期,是最后生成html以后才输出到前台的,和“document的state没有complate“没有半毛钱关系啊高人指点下。。
<form id="Form1" method="post" runat="server">
<table class="table" cellSpacing="0" cellPadding="0" width="100%" bgColor="#7bb2f7" border="0">
<tr>
<td align="left" bgColor="#ffffff">
<div id="DivReuslt" align="center" runat="server">
</div>
</td>
</tr>
<tr>
<td background="<%=ImageUrl%>index_cont_table_bt_bg.gif" height="5"> </td>
</tr>
<tr>
<td><asp:imagebutton id="BtnQuery" runat="server" OnClientClick="return ValidateInput();" OnClick="BtnQuery_Click" ToolTip="生成报表" ImageUrl="~/App_Themes/Default/Images/button_maths.gif"></asp:imagebutton></td>
</tr>
</table>
</form>
</BODY>
在后台的BtnQuery_Click事件里,动态生成一个table,然后
最后为DIV设置内容: StringBuilder builder = new StringBuilder();
builder.Append("<table id='TbExcel'>");
..............生成table内容操作,在此省略了
builder.Append("</table>");
DivReuslt.InnerHtml=builder.ToString();
基本上没有其它操作,就是这样一个生成报表table的页面,部署到服务器后,在有的电脑上无论用IE6,IE7,IE8都正常的,就是不管怎么折腾都正常。。但是在有的电脑上如果是在Frame中在父窗口内打开,就显示“Internet Explorer无法打开站点,已终止操作”。。如果在新的窗口打开就正常。。这个问题真的太奇怪了,真的不知道程序哪里有问题,因为这个页面很简单啊。。 然后,最后在网上看了有人说是javascript种如果document的state没有complate的时候,用InnerHtml就是报这个错误,于是我改用Javascript的方式在前台判断,当Document的ReadyState Complete的时候,我再设置DivReuslt.InnerHtml的属性,这次在所有电脑上不报错了。我的疑问是,这个解决的方法好像和我的问题没关系啊,我的DivReuslt.InnerHtml=builder.ToString();是在后台赋值的。。根据ASp.net的页面生存周期,是最后生成html以后才输出到前台的,和“document的state没有complate“没有半毛钱关系啊高人指点下。。
贴个HTML代码看下就知道 了