Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getElementById给出错误“null”为null或不是对象_Javascript_Asp.net_Null_Getelementbyid - Fatal编程技术网

Javascript getElementById给出错误“null”为null或不是对象

Javascript getElementById给出错误“null”为null或不是对象,javascript,asp.net,null,getelementbyid,Javascript,Asp.net,Null,Getelementbyid,我想使用javascript调用一个c函数,所以我在Default.aspx中添加了一个不可见的asp.net按钮,现在我尝试在javascript中调用它,这样它将触发c函数,但它给出的“null”是null或不是对象。我试图将我的javascript部分移动到许多地方来解决这个问题,但没有成功 <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> </asp:Co

我想使用javascript调用一个c函数,所以我在Default.aspx中添加了一个不可见的asp.net按钮,现在我尝试在javascript中调用它,这样它将触发c函数,但它给出的“null”是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>

您应该使用Ajax实现来解决这个问题。通过这种方式,您可以调用包含一些业务逻辑的webservice,并将响应发送回客户端

使用公式WCF,ServiceStack创建web服务 创建一个按钮 使用jQuery订阅按钮的点击事件并调用您的Web服务。 在success回调函数中,执行一些客户端逻辑,例如更新书籍列表。 致以最良好的祝愿


Rob

您应该使用Ajax实现来解决这个问题。通过这种方式,您可以调用包含一些业务逻辑的webservice,并将响应发送回客户端

使用公式WCF,ServiceStack创建web服务 创建一个按钮 使用jQuery订阅按钮的点击事件并调用您的Web服务。 在success回调函数中,执行一些客户端逻辑,例如更新书籍列表。 致以最良好的祝愿

罗伯

试试这个

     document.getElementById('<%=button1.ClientID%>')
试试这个

     document.getElementById('<%=button1.ClientID%>')

虽然我强烈建议您采用ajax/WCF解决方案,但您当前的方法存在的问题很可能是按钮的ID。ASP控件通常不会以您在标记中指定的ID呈现,而是以ct100或container$ID或container_ID作为前缀,具体取决于ASP的版本。我建议您查看页面上的源代码,以查看呈现的ID,并确保将其传递到您的文档。getElementById。

虽然我强烈建议您采用ajax/WCF解决方案,但您当前方法的问题很可能是按钮的ID。ASP控件通常不会以您在标记中指定的ID呈现,而是以ct100或container$ID或container_ID作为前缀,具体取决于ASP的版本。我建议您查看页面上的源代码以查看呈现的ID,并确保将其传递给文档。getElementById。

您确定呈现的页面使用文字ID格式而不是旧的ctl00前缀格式吗?我不确定,但我使用的是.NET 4.0,因此可能不是旧格式,我说得对,JavaScript在客户端上。c在服务器上。不能从JavaScript调用c函数-它们在两台不同的机器上!Diodeus,请看第二个答案,在这个主题中有18张赞成票,这就是我要做的,我用javascript调用asp.net函数,asp.net函数将启动c函数,假设javascript错误是浏览器中的客户端错误,最好也将返回的标记发布到浏览器。您确定呈现的页面使用文字id格式而不是旧的ctl00前缀格式吗?我不确定,但我使用的是.NET 4.0,因此可能不是旧格式,对吗?客户端上有JavaScript。c在服务器上。不能从JavaScript调用c函数-它们在两台不同的机器上!Diodeus,请看第二个答案,在这个主题中有18票以上,这就是我要做的,我用javascript调用asp.net函数,asp.net函数将启动c函数。如果javascript错误是浏览器中的客户端错误,那么最好也将返回的标记发布到浏览器中。