Javascript 无法在 ASP.NET C# 中 GetElementById

发布于 2025-01-05 11:58:22 字数 1486 浏览 0 评论 0原文

我知道这是一个很常见的问题。我试图通过 JavaScript 获取“输入键”事件来调用页面上某个按钮的单击。但是,我一生都无法通过 id 或名称从我的 asp.net 页面中获取单个元素。

据我了解,这个问题与 javascript 所在的位置以及加载 javascript 时元素是否已呈现或类似性质有关?

每次我尝试使用 var x = document.getElementById('btn_AddAdmin') 时,我都会得到一个空值。

我的 asp.net 页面有它继承的 SiteMaster 页面。我已经包含了我的 asp.net 页面和 SiteMaster 页面的精简版本。

ASP.NET 页面:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" 
     AutoEventWireup="true" CodeBehind="Admin.aspx.cs" Inherits="HERMES.Admin" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<input type="text" id="txt_AddAdmin" runat="server" onkeypress="Populate()" />

母版页:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" 
         Inherits="HERMES.SiteMaster" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title></title>
    <link href="./Styles/Site.css" rel="stylesheet" type="text/css" />
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form runat="server">
</form>
</body>

抱歉格式错误,我似乎做错了什么...

我尝试将 javascript 放置在许多不同的位置 - 从站点管理员页面到我的 asp.net 的顶部和底部的任何位置页。无论如何都没有运气。

I know this is a very common problem. I was trying to get a "enter key" event to invoke a click on a certain button on the page through javascript. However, I can't for the life of me fetch a single element by its id or name from my asp.net page.

It is my understanding that this issue is related to where the javascript is located and whether the elements have been rendered by the time the javascript is loaded or something of that nature?

Every time I attempt to use var x = document.getElementById('btn_AddAdmin') I end up with a null value.

My asp.net page has SiteMaster page that it inherits from. I have included a trimmed down version of my asp.net page and the SiteMaster page.

ASP.NET Page:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" 
     AutoEventWireup="true" CodeBehind="Admin.aspx.cs" Inherits="HERMES.Admin" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<input type="text" id="txt_AddAdmin" runat="server" onkeypress="Populate()" />

Master Page:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" 
         Inherits="HERMES.SiteMaster" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title></title>
    <link href="./Styles/Site.css" rel="stylesheet" type="text/css" />
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form runat="server">
</form>
</body>

Sorry for the formatting, I seem to be doing something wrong...

I have attempted placing the javascript in many different locations -- anywhere from the sitemaster page to the top and bottom of my asp.net page. No luck either way.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱你不解释 2025-01-12 11:58:23
var x = document.getElementById('<%= btn_AddAdmin.ClientID %>');

如果您的按钮是服务器控件,它会在input按钮前面添加命名方案,以便在回发期间将其绑定回适当的服务器控件。因此需要使用 ClientID 属性来检索“呈现的 id”。

要了解更多信息,请访问:

使用 Bing Google 搜索:

  • clientid
  • aspnet webforms 客户端编程
var x = document.getElementById('<%= btn_AddAdmin.ClientID %>');

If your button is a Server Control it prepends a naming scheme to the input button so it can be bound back to the appropriate server control during postback. Thus the need to use the ClientID property to retrieve the "rendered id".

To learn more visit:

Google it with Bing:

  • clientid
  • aspnet webforms client side programming
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文