我正在使用以下后端c#代码来查看是否需要更新span
内的文本。
C#:
if (status1.InnerHtml != temp1)
{
status1.InnerHtml = temp1;
status1.Update();
}
HTML:
<span runat="server" id="status1">Status 1</span>
这在chrome和firefox中运行良好,但在即中存在问题。
在视觉上,这就是发生的事情(仅在ie中):
第一次:{{0}}
第二次:
可能的错误来源
我注意到status1.InnerHtml
总是返回Status 1
;因为它永远不会改变。这让我相信这就是它创造第二个元素的原因。
这意味着我需要找到一种方法来获取span
的当前值,使用除InnerHtml
之外的其他内容(runat="server"
应该解决此问题)。
查看代码,即在初始加载时,它会正确显示。但是,第二次执行代码时,
它变成了
<ext.net.direct.update id="status1"/>
<span id="status1">
Text - Transfer completed
</ext.net.direct.update/>
(注意:结束范围标记已删除)
到
<span id="el_status1_container">
<span id="status1">
Text - Transfer completed
<span id="status1">
Text - Transfer completed
</ext.net.direct.update/>
(注意:<ext.net.direct.update id="status1"/>
从代码中删除,插入了具有重复ID的元素)
任何指针都将非常感谢!谢谢
答案 0 :(得分:0)
我提出的解决方案是制作一个按钮,点击后加载状态。使用javascript,我在使用this post中找到的代码生成按钮时单击了该按钮。
function initialload() {
if (document.getElementById('Label1')) {
document.getElementById("Label1").click();
} else {
setTimeout(initialload, 15);
}
这是有效的,因为事实证明ie
忽略了初始跨度(很奇怪,但是嘿,它就是这样)并使用第二个来更新它。
这是一种解决方法,所以如果有人有更好的答案,请分享!