Javascript getElementById给出错误“null”为null或不是对象
我想使用javascript调用一个c函数,所以我在Default.aspx中添加了一个不可见的asp.net按钮,现在我尝试在javascript中调用它,这样它将触发c函数,但它给出的“null”是null或不是对象。我试图将我的javascript部分移动到许多地方来解决这个问题,但没有成功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
<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错误是浏览器中的客户端错误,那么最好也将返回的标记发布到浏览器中。