Javascript невозможно получить GetElementById в ASP.NET C # - PullRequest
3 голосов
/ 15 февраля 2012

Я знаю, что это очень распространенная проблема.Я пытался получить событие «ввода ключа», чтобы вызвать нажатие определенной кнопки на странице через JavaScript.Тем не менее, я не могу получить один элемент по его идентификатору или имени со своей страницы 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.Не повезло в любом случае.

1 Ответ

6 голосов
/ 15 февраля 2012
var x = document.getElementById('<%= btn_AddAdmin.ClientID %>');

Если ваша кнопка - Server Control, она добавляет схему присвоения имен кнопке input, чтобы ее можно было привязать к соответствующему серверному элементу управления во время postback.Таким образом, необходимо использовать свойство ClientID для извлечения «предоставленного идентификатора».

Чтобы узнать больше, посетите:

Google it with Bing:

  • clientid
  • aspnet webforms программирование на стороне клиента
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...