ASP.NET DataGrid ClientID 值返回 null
ASP.NET DataGrid ClientID value returning null
我看到在 ASP.NET 中有很多关于获取 ClientID 的问题,但我查看的所有问题都对我的场景没有帮助。我对 ASP.NET 有点陌生,在 JavaScript.
中获取 DataGrid 的 ClientID 时遇到问题
希望论坛里有人帮我想办法。
在我的 aspx 页面上,我得到了一个数据网格:
<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 中使用以下内容时,它会在警报消息中返回适当的 table 内部 HTML。
alert(document.getElementById('ct100_PageContent_dgItems').innerHTML);
但是当我使用 ASP.NET ClientID 时,我收到一个空值异常,因为它抛出一个空值。
alert(document.getElementById('<%=dgItems.ClientID %>').innerHTML);
任何人都可以在这方面帮助我。
提前致谢。
而不是
alert(document.getElementById('<%=dgItems.ClientID %>').innerHTML);
.. 您可以给 DataGrid 一个 CSS class,例如 'dgrid' 并使用 jQuery class 选择器在客户端找到它?
如果document.getElementById('<%=dgItems.ClientID %>')
位于与 aspx 页面不同的 JS 文件中,那么 ASP.Net 引擎将无法解析该引用。它仅适用于嵌入在 .aspx 页面中的脚本。
然而,如果您不在页面上复制 DataGrid,那么您可以使用 ClientIDMode="static"
:
给它一个静态 ID 来解决这个问题
<asp:DataGrid ID="dgItems" ClientIDMode="static" runat="server" AutoGenerateColumns="False" GridLines="None">
然后用
引用它
document.getElementById('dgItems')
我看到在 ASP.NET 中有很多关于获取 ClientID 的问题,但我查看的所有问题都对我的场景没有帮助。我对 ASP.NET 有点陌生,在 JavaScript.
中获取 DataGrid 的 ClientID 时遇到问题希望论坛里有人帮我想办法。
在我的 aspx 页面上,我得到了一个数据网格:
<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 中使用以下内容时,它会在警报消息中返回适当的 table 内部 HTML。
alert(document.getElementById('ct100_PageContent_dgItems').innerHTML);
但是当我使用 ASP.NET ClientID 时,我收到一个空值异常,因为它抛出一个空值。
alert(document.getElementById('<%=dgItems.ClientID %>').innerHTML);
任何人都可以在这方面帮助我。
提前致谢。
而不是
alert(document.getElementById('<%=dgItems.ClientID %>').innerHTML);
.. 您可以给 DataGrid 一个 CSS class,例如 'dgrid' 并使用 jQuery class 选择器在客户端找到它?
如果document.getElementById('<%=dgItems.ClientID %>')
位于与 aspx 页面不同的 JS 文件中,那么 ASP.Net 引擎将无法解析该引用。它仅适用于嵌入在 .aspx 页面中的脚本。
然而,如果您不在页面上复制 DataGrid,那么您可以使用 ClientIDMode="static"
:
<asp:DataGrid ID="dgItems" ClientIDMode="static" runat="server" AutoGenerateColumns="False" GridLines="None">
然后用
引用它document.getElementById('dgItems')