我有一个空div的网页,id =“PreAcquisitionDiv”runat =“server”
在C#代码隐藏中,在Page_Load上,我构建了一个表并将其设置为PreAcquisitionDiv.InnerHtml
我的页面显示确定。我导致PostBack,打算更改表中的数据。在代码中,PreAcquisitionDiv.InnerHtml确实发生了变化,但我第一次放在那里的表仍然显示在页面上。
我已经看到了一些关于使用InnerHtml的警告,但我看到的替代品的例子是JavaScript。
我使用的是IE 8,但我在Chrome中观察到相同的行为。
感谢您的任何建议!
例如,此代码在首次显示页面时显示“SomeStuff”;然后在PostBack之后仍然是“SomeStuff”,即使InnerHtml被更改了。
protected void Page_Load( object sender, EventArgs e )
{
StringBuilder html = new StringBuilder( @"<TABLE BORDER='1' WIDTH='100%'>" );
if( !IsPostBack )
{
html.Append(@"<TR><TD>SomeStuff</TD></TR>" );
}
else
{
html.Append( @"<TR><TD>Some New Stuff</TD></TR>" );
}
html.Append( @"</TABLE>" );
this.PreAcquisitionDiv.InnerHtml = html.ToString( );
}
答案 0 :(得分:0)
如果您要在帖子上更改HTML,您是否正在运行您的功能以便在帖子上进行设置?
更新:我复制并粘贴了您的代码,对我来说效果很好。这是我的完整代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
namespace Sandbox
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder html = new StringBuilder(@"<TABLE BORDER='1' WIDTH='100%'>");
if (!IsPostBack)
{
html.Append(@"<TR><TD>SomeStuff</TD></TR>");
}
else
{
html.Append(@"<TR><TD>Some New Stuff</TD></TR>");
}
html.Append(@"</TABLE>");
this.PreAcquisitionDiv.InnerHtml = html.ToString();
}
protected void btnTest_OnClick(object sender, EventArgs e)
{
}
}
}
这是我的整个ASPX页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Sandbox._Default" %>
<!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>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div id="PreAcquisitionDiv" runat="server">
</div>
<asp:Button ID="btnTest" runat="server" OnClick="btnTest_OnClick" />
</form>
</body>
</html>