Javascript getElementById дает ошибку «ноль» является нулем или не объект - PullRequest
1 голос
/ 12 марта 2012

Я хочу вызвать функцию ac #, используя javascript, поэтому я добавил невидимую кнопку asp.net в свой Default.aspx, и теперь я пытаюсь вызвать ее внутри javascript, чтобы она вызывала функцию c #, но это'null' является нулем или не объектом.Я пытался переместить свою часть JavaScript во многие места, чтобы решить проблему, но это не сработало.

<asp:Content ID="HeaderContent" runat="server"
ContentPlaceHolderID="HeadContent">
</asp:Content>

    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
        <h2>        WELCOME     </h2>
     <div style="display: none;">
            <asp:Button ID="button1" runat="server"
             OnClick="btn_SearchLibrary_Click" />
     </div>

        <script type="text/javascript">
            function displaymessage() {
                var button = document.getElementById('button1');
                button.click();
            }
        </script>


<!-- Some codes in here, below there is a gridview templatefield -->



    <asp:TemplateField HeaderText="BookName"
    SortExpression="BookName" ItemStyle-Width="150px">
                                <ItemTemplate>
                                    <asp:HyperLink ID="HyperLink1"
    runat="server" Text='<%# Bind("BookName") %>'
    NavigateUrl="javascript:displaymessage()"></asp:HyperLink>
                                </ItemTemplate>
                            </asp:TemplateField>

Ответы [ 3 ]

2 голосов
/ 12 марта 2012

попробуйте

     document.getElementById('<%=button1.ClientID%>')
2 голосов
/ 12 марта 2012

Вы должны решить эту проблему с помощью Ajax-реализации. Таким образом, вы можете вызвать веб-сервис, который будет содержать некоторую бизнес-логику и отправить ответ клиенту.

  1. Создание веб-службы с использованием уравнения (WCF, ServiceStack)
  2. Создать кнопку
  3. Подпишитесь на событие нажатия кнопки с помощью jQuery и позвоните в ваш веб-сервис.
  4. В функции обратного вызова успешно выполните клиентскую логику, например, обновите список книг.

С уважением,

Rob

1 голос
/ 12 марта 2012

Хотя я настоятельно рекомендую использовать решение ajax / WCF, проблема с вашим текущим подходом, скорее всего, связана с идентификатором кнопки.Элементы управления ASP обычно не отображаются с идентификатором, указанным в разметке, но с префиксом «ct100», «container $ id» или «container_id», в зависимости от версии ASP.Я бы посоветовал вам просмотреть источник на своей странице, чтобы увидеть обработанный идентификатор, и убедиться, что вы передаете его в свой document.getElementById.

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