我在javascipt中遇到错误。当txtname的文本等于tbl.rows [row + 2] .cells 1。innerText显示错误,但如果txtname中的值不相等对它来说,它可以替换txtname的值。我在分配内部文本之前尝试清空txtname的值,但它仍然出现相同的错误。希望我能在这里得到一些提示。谢谢
0x800a138f - JavaScript运行时错误:无法获取属性'cells' 未定义或空引用
function setSearch(row) {
var tbl = document.getElementById("<%=MultiSelectGridView1.ClientID%>");
var txt = document.getElementById("<%=txtName.ClientID%>");
txt.value = tbl.rows[row + 2].cells[1].innerText;
$find("BtnSearch2").hide();
}
<grd:MultiSelectGridView ID="MultiSelectGridView1" runat="server" Width="500px"
CssClass="paging_gridview" AllowPaging="True"
AutoGenerateColumns ="false" PageSize="10" PagerType="Custom"
DataKeyNames="Urid,Name" OnPageIndexChanging="MultiSelectGridView1_PageIndexChanging"
MultiSelectDataKeyName="Urid,Name" ShowHeaderWhenEmpty="true"
MultiSelectColumnIndex="0" EnableMultiSelect="false" OnRowDataBound="GridView_RowDataBound"
>
<HeaderStyle CssClass="paging_gridview_hdr" />
<AlternatingRowStyle CssClass="paging_gridview_aitm" />
<RowStyle CssClass="paging_gridview_itm" />
<PagerStyle CssClass="paging_gridview_pgr" HorizontalAlign="Right" />
<PagerSettings Position="TopAndBottom" />
<EmptyDataTemplate>
No data to display
</EmptyDataTemplate>
<Columns>
<asp:TemplateField HeaderText="No" >
<ItemTemplate>
<%# (Container.DataItemIndex + 1) %>
</ItemTemplate>
<ItemStyle Width="20" HorizontalAlign="Right" />
<HeaderStyle Width="20" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Name" HeaderStyle-Width="430" >
<ItemTemplate>
<%# Eval("Name") %>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Urid" DataField="Urid" HeaderStyle-Width="50" ItemStyle-Width="50" Visible="false" />
</Columns>
</grd:MultiSelectGridView>
答案 0 :(得分:0)
这是txt.value
的作业,因此我认为您的错误与txt.value
的原始值无关。原因可能是您row+2
的值大于整行数。因此tbl.rows[row + 2]
获得undefined
。