【问题标题】:Microsoft JScript runtime error: 'DeleteRowFromCart' is undefinedMicrosoft JScript 运行时错误:“DeleteRowFromCart”未定义
【发布时间】:2013-01-29 22:04:12
【问题描述】:

我最近遇到了这个“函数未定义错误”,有点令人沮丧。

我有一个 Web 应用程序,我在其中尝试使用代码隐藏中的 StringBuilder 类动态构建我的 java-script 页面。在我的代码隐藏中,我将OnClick 事件与锚标记相关联。

click 事件似乎永远不会触发。

我总是收到错误消息:

脚本块 0x800a1391 中第 794 行第 1 列的未处理异常 - Microsoft JScript 运行时错误:“DeleteRowFromCart”未定义

Javascript 代码:

脚本包括

<link href="Styles/jquery.mobile-1.2.0.min.css" rel="stylesheet" 
    type="text/css" />
<script src="Scripts/jquery.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.mobile-1.2.0.min.js" type="text/javascript" >
</script>

<script type="text/javascript">
    function DeleteRowFromCart(tableID) {
        // Function Logic             
    }
</script>

后面的代码::动态构建页面

StringBuilder cartString = new StringBuilder(string.Empty);
cartString.Append(@"<tr><td></td><td align='right'>
    <a data-role='button' data-mini='true' data-icon='delete' data-theme='a' 
    onclick='DeleteRowFromCart("+ product.TableId+");'>Delete</a></td></tr>");
cartString.Append("</table></li>");
CartPanel.Controls.Add(new LiteralControl(cartString.ToString()));

这里的 CartPanel 是一个 ASP 面板

<asp:Panel runat="server" ID="CartPanel" />

我不知道这里可能有什么问题。 任何帮助将不胜感激。

【问题讨论】:

  • 运行您的应用程序,然后从您的浏览器中查看页面源代码,DeleteRowFromCart 是否存在?你也可以发布为删除按钮生成的 html 吗?
  • 我的源代码中不存在“DeleteRowFromCart”函数。还有一件更奇怪的事情是,当我查看源代码时,我没有看到我动态构建的控件的任何 html。而是在解决方案中显示我的启动页面的 HTML 内容。应该是这样吗?

标签: javascript asp.net


【解决方案1】:

单引号可能有问题尝试替换以下 -

onclick='DeleteRowFromCart("+ product.TableId+");' to onclick=DeleteRowFromCart('"+ product.TableId+'");

更新 - 在函数之前添加 javascript。

string TableID="Table01";

 StringBuilder cartString = new StringBuilder(string.Empty);
 cartString.Append(@"<tr><td></td><td align='right'>
 <a data-role='button' data-mini='true' data-icon='delete' data-theme='a'
 onclick=javascript:DeleteRowFromCart('" + TableID + "');>Delete</a></td></tr>");
 cartString.Append("</table></li>");
 CartPanel.Controls.Add(new LiteralControl(cartString.ToString()));

【讨论】:

  • 感谢您的回复。我确实尝试更改引号,但它给出了错误,因为您指定引号的方式对我来说似乎是错误的。 OnClick 不应该用单引号括起来吗?
  • 作为更新,我确实尝试将语句更改为 onclick='DeleteRowFromCart();'对于一个简单的函数,它也会给出同样的错误。
  • 遗憾的是,即使警报也不起作用。我现在开始有点偏执了。这行得通。 &lt;script type="text/javascript"&gt; alert('success') &lt;/script&gt; 但如果我在其中添加一个执行相同操作的简单函数,则它不起作用
  • 在仔细删除标签和反复试验后,我终于找到了解决方案。现在我没有得到未定义的函数,而是得到“0x800a1391 - Microsoft JScript 运行时错误:'gucci1' 未定义” 其中 gucci1 是我在 'DeleteRowFromCart(TableId)' 函数中采用的参数。顺便说一句,通过删除名为data-role="page" 的属性解决了错误函数未定义
  • 可以分享页面的源码(查看源码)吗?
猜你喜欢
  • 2011-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多