C# 当我使用母版页时,为什么这个JS会失败?(ASP.NET)
我目前正在从事一个需要使用大量AJAX AutoCompleteTextender的项目,它们工作得很好——但现在我正在整理代码并实现母版页,我遇到了一些问题。我有这个JS:C# 当我使用母版页时,为什么这个JS会失败?(ASP.NET),c#,asp.net,ajax,autocompleteextender,C#,Asp.net,Ajax,Autocompleteextender,我目前正在从事一个需要使用大量AJAX AutoCompleteTextender的项目,它们工作得很好——但现在我正在整理代码并实现母版页,我遇到了一些问题。我有这个JS: $find('txtName')._onMethodComplete = function(result, context) { $find('txtName')._update(context, result, false); webservice_callback(result,context); }; 当我加载页
$find('txtName')._onMethodComplete = function(result, context) {
$find('txtName')._update(context, result, false);
webservice_callback(result,context);
};
当我加载页面时,会出现与该代码段相关的错误:
Microsoft JScript运行时错误:“null”为null或不是对象
只是重申一下,这只发生在我有一个母版页的一些奇怪的原因。有什么想法吗?请尝试在页面上查看源代码,并确保仍命名为txtName。有时母版页的名称会发生更改。请尝试在页面上查看源代码,并确保该名称仍然命名为txtName。有时母版页的名称会发生变化。您需要使用
,因为使用母版页时,您的ID将被损坏,以避免母版页和aspx/usercontrols等之间的名称冲突
但是请注意,为了能够使用,您需要使用
,因为使用母版页时,您的ID将被损坏,以避免母版页和aspx/usercontrols等之间的名称冲突
但是请注意,为了能够使用,您可以尝试以下方法:
('')\u onMethodComplete=function(result,context){你能试试这个吗:
(“”)。\u onMethodComplete=function(result,context){如果您使用.NET 4,那么您可以将clientdmode=“Static”
添加到页面指令中,这将告诉ASP.NET不要插手元素ID。如果您使用.NET 4,那么您可以添加clientdmode=“Static”
插入page指令,该指令将告诉ASP.NET不要让它的手接触元素ID。当您使用masterpage时,控件的ID会发生变化,因此您不能在Javascript中使用相同的ID,相反,您可以像这样修改选择器:$('input[ID*='txtName'])现在,它会找到所有id包含txtName的控件。您可以使用不同的选择器。
当您使用masterpage时,控件的ID会发生变化,因此您不能在Javascript中使用相同的ID,相反,您可以这样修改选择器:$('input[ID*=“txtName”])现在它会找到所有ID包含txtName的控件。您可以使用不同的此类选择器。
您是否尝试过使用firebug在firefox上进行调试?它有一个很好的javascipt调试器,internet explorer调试器在firefox中几乎毫无用处comparison@Hawxby-我不同意。如果你知道你在做什么,IE javascript调试器比FireBug有用得多。在8中更有用,在9中更有用,但在那之前非常糟糕。因为我不知道在工作环境中使用的IE版本说,安装firefox和firebug可能比更新IE更简单。您是否尝试过使用firebug在firefox上调试?它有一个很好的javascipt调试器,internet explorer调试器在工作环境中几乎没有用comparison@Hawxby-我不同意。如果你同意,IE javascript调试器比FireBug有用得多现在你在做什么。第8章更详细,第9章更详细,但在这之前,情况非常糟糕。因为我不知道工作环境中使用的IE版本,我说安装firefox和firebug可能比更新IE更简单。
<!-- #Include virtual=".\JS\YourJSFileWithASPNETMarkup.js" -->