我看到有很多关于在ASP.NET中获取ClientID的问题,但我看过的所有问题对我的场景没有帮助.我对ASP.NET有点新,并且在使用JavaScript获取DataGrid的ClientID方面存在问题.
希望有人在这个论坛帮助我找到方法.
在我的aspx页面上,我得到了一个datagrid:
<div class="tblgrid" id="divItems">
<asp:DataGrid ID="dgItems" runat="server" AutoGenerateColumns="False" GridLines="None">
<Columns>
<asp:BoundColumn HeaderText="EmpId" DataField="EmpId">
</asp:BoundColumn>
<asp:BoundColumn HeaderText="F_Name" DataField="F_Name">
</asp:BoundColumn>
<asp:BoundColumn HeaderText="L_Name" DataField="L_Name">
</asp:BoundColumn>
<asp:BoundColumn DataField="City" HeaderText="City">
</asp:BoundColumn>
.....
</Columns>
当我在我的JavaScript中使用以下内容时,它会在警报消息中返回适当的表格内部HTML.
alert(document.getElementById('ct100_PageContent_dgItems').innerHTML);
但是当我使用ASP.NET ClientID时,我得到一个空值异常,因为它抛出一个空值.
alert(document.getElementById('<%=dgItems.ClientID %>').innerHTML);
谁能在这方面帮助我.
提前致谢.
解决方法:
如果document.getElementById(‘<%= dgItems.ClientID%>‘)
是在一个单独的JS文件到aspx页面的文件,然后ASP.Net引擎将无法解析引用.它仅适用于嵌入在.aspx页面中的脚本.
但是,如果您没有在页面上复制DataGrid,那么您可以使用ClientIDMode =“static”为其提供静态ID:
<asp:DataGrid ID="dgItems" ClientIDMode="static" runat="server" AutoGenerateColumns="False" GridLines="None">
然后引用它
document.getElementById('dgItems')