1

在我的应用程序中,我使用 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%">&nbsp;</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%">&nbsp;</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?

4

1 回答 1

1

来自 MSDN:

innerHTML 属性在 col、colGroup、frameSet、html、head、style、table、tBody、tFoot、tHead、title 和 tr 对象上是只读的。

您必须重建整个表,否则使用 DOM API 修改/添加内容。

于 2013-01-31T15:43:10.173 回答