在我的应用程序中,我使用Javascript通过PageMethods调用VB端函数。当命中onSuccess函数时,我试图将返回的字符串添加到表的内部html中。下面列出的是我试图用来做这个的Javascript,但我一直得到:
“Microsoft JScript运行时错误:未知的运行时错误”
下面是表格(我想保留这个表格,如果可能的话,当我继承这个项目时,这已经存在了。)
<asp:Table id="tblResults" Runat="server" CssClass="detailTable" CellSpacing="0" CellPadding="4"
Width="100%">
<asp:TableRow CssClass="detailRow">
<asp:TableCell Width="1%"> </asp:TableCell>
<asp:TableCell Width="10%">
<b>ID</b></asp:TableCell>
<asp:TableCell>
<b>Title</b></asp:TableCell>
<asp:TableCell>
<b>Manager</b></asp:TableCell>
<asp:TableCell>
<b>Start Date</b></asp:TableCell>
<asp:TableCell>
<b>End Date</b></asp:TableCell>
<asp:TableCell>
<b>Status</b></asp:TableCell>
</asp:TableRow>
</asp:Table>
调用JS函数时表的innerHTML:
<TBODY>
<TD style="WIDTH:1%"> </TD>
<TD style="WIDTH:10%"><B>ID</B></TD>
<TD><B>Title</B></TD>
<TD><B>Manager</B></TD>
<TD><B>Start Date</B></TD>
<TD><B>End Date</B></TD>
<TD><B>Status</B></TD></TR></TBODY>
这里是成功函数的javascript - 我做的是我切断了innerHTML的/ TBODY结尾,想要添加返回字符串(包含表格其他行的html的文本) - 然后添加/ TBODY回到关闭表:
function saveSuccess(c) {
var oldInner = document.getElementById('tblResults').innerHTML;
var index = oldInner.indexOf("</TBODY>");
oldInner = oldInner.slice(0, index);
document.getElementById('tblResults').innerHTML = oldInner + c + '</TBODY>';
}
任何人都可以看到为什么我收到此错误以及为什么表没有更新以显示返回的html?
答案 0 :(得分:1)
来自MSDN:
innerHTML属性在col,colGroup,frameSet,html,head,style,table,tBody,tFoot,tHead,title和tr对象上是只读的。
您必须重建整个表,否则使用DOM API来修改/添加内容。